Hello All,
I have been googling this for a few hours now, searching through the google groups and just cannot find a solution. I created 2 simple buttons just to setup the pushing and pulling of data between Firebase and Unity. I could write to Firebase no problem, but then when I created the Read functionality, it worked the first time, but then ever since then, I have been getting this error repeated over and over until I stop running the app.
I also noticed that my Load percentage is at 100%. I am the only person using it and building the app. I am doing very simple requests and you can see from my code below the errors. Could anyone help me find a solution to this as I am a little stumped.
01/21/2018 23:33:07 [Error] WebSocket: ws_0 - could not connect
System.Net.Sockets.SocketException: Connection timed out
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0
at System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000] in <filename unknown>:0
at Firebase.Database.Internal.TubeSock.WebSocket.CreateSocket () [0x00000] in <filename unknown>:0
UnityEngine.Debug:LogError(Object)
Firebase.Platform.FirebaseLogger:LogMessage(PlatformLogLevel, String)
Firebase.Unity.UnityLoggingService:LogMessage(PlatformLogLevel, String)
Firebase.Database.Internal.Logging.DefaultLogger:Error(String, String)
Firebase.Database.Internal.Logging.DefaultLogger:OnLogMessage(Level, String, String, Int64)
Firebase.Database.Internal.Logging.LogWrapper:Error(String, Exception)
Firebase.Database.Internal.TubeSock.WebSocket:LogError(String, Exception)
Firebase.Database.Internal.TubeSock.WebSocket:CreateSocket()
Firebase.Database.Internal.TubeSock.WebSocket:RunReader()
Firebase.Database.Internal.TubeSock.Runnable101:Run()
Google.Sharpen.Thread:InternalRun()
01/21/2018 23:33:07 [Error] WebSocket: ws_0 - WebSocketException during handshake
Firebase.Database.Internal.TubeSock.WebSocketException: unknown host:
test-project-c3527.firebaseio.com ---> System.Net.Sockets.SocketException: Connection timed out
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0
at System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000] in <filename unknown>:0
at Firebase.Database.Internal.TubeSock.WebSocket.CreateSocket () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Firebase.Database.Internal.TubeSock.WebSocket.CreateSocket () [0x00000] in <filename unknown>:0
at Firebase.Database.Internal.TubeSock.WebSocket.RunReader () [0x00000] in <filename unknown>:0
UnityEngine.Debug:LogError(Object)
Firebase.Platform.FirebaseLogger:LogMessage(PlatformLogLevel, String)
Firebase.Unity.UnityLoggingService:LogMessage(PlatformLogLevel, String)
Firebase.Database.Internal.Logging.DefaultLogger:Error(String, String)
Firebase.Database.Internal.Logging.DefaultLogger:OnLogMessage(Level, String, String, Int64)
Firebase.Database.Internal.Logging.LogWrapper:Error(String, Exception)
Firebase.Database.Internal.TubeSock.WebSocket:LogError(String, Exception)
Firebase.Database.Internal.TubeSock.WebSocket:RunReader()
Firebase.Database.Internal.TubeSock.Runnable101:Run()
Google.Sharpen.Thread:InternalRun()
public class firebaseDatabase: MonoBehaviour
{
DatabaseReference reference;
void Start()
{
// Set this before calling into the realtime database.
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://PROJECT-NAME-HERE.firebaseio.com/"); //inserted fake project name for this post
// Get the root reference location of the database.
reference = FirebaseDatabase.DefaultInstance.RootReference;
}
public void HoldNewUserName(String username)
{
PlayerPrefs.SetString("Username", username);
Debug.Log(PlayerPrefs.GetString("Username"));
}
public class User
{
public String name;
public String email;
public String Password;
}
public void newUser()
{
var obj = new User
{
name = "work", //PlayerPrefs.GetString("Username"),
email = "email",
Password = "password"
};
String json = JsonUtility.ToJson(obj);
Debug.Log("User = " + json);
reference.Child("Testing").Child("hello").SetRawJsonValueAsync(json);
}
public void pullData()
{
var getTask = reference.Child("Users").Child("hello").GetValueAsync();
StartCoroutine(ReadyData());
if(getTask.IsCompleted)
{
Debug.Log(getTask.Result.Value.ToString());
}
else
{
Debug.Log ("If Error");
}
}
IEnumerator ReadyData()
{
var getTask = reference.Child("Users").Child("testing").GetValueAsync();
yield return new WaitUntil(() => getTask.IsCompleted || getTask.IsFaulted);
if(getTask.IsCompleted)
{
Debug.Log(getTask.Result.Value.ToString());
}
else
{
Debug.Log ("If Error");
}
}
}
I would appreciate any help possible.
Luke