Кажется, я не могу найти рабочее решение этой ошибки, более полное:
018-06-01 10:33:09 PM [Error] WebSocket: ws_0 - could not connect System.Net.Sockets.SocketException (0x80004005): No route to host
2018-06-01 10:33:09 PM [Error] WebSocket: ws_0 - WebSocketException during handshake Firebase.Database.Internal.TubeSock.WebSocketException: unknown host: ########.firebaseio.com ---> System.Net.Sockets.SocketException: No route to host
Примите к сведению, указанные выше ошибки повторяются несколько раз каждую секунду, при этом ws_ # каждый раз увеличивается на единицу.
Единство 2018.1.1f1
Firebase-Database: все самое новое, полученное несколько дней назад
Немного кода:
void Start() {
FirebaseApp.LogLevel = LogLevel.Verbose;
FirebaseDatabase.DefaultInstance.LogLevel = LogLevel.Verbose; // Or your database instance, if not using the default.
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
var dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available) {
FirebaseApp app = FirebaseApp.DefaultInstance;
// NOTE: You'll need to replace this url with your Firebase App's database
// path in order for the database connection to work correctly in editor.
app.SetEditorDatabaseUrl("https://########.firebaseio.com/");
if (app.Options.DatabaseUrl != null) app.SetEditorDatabaseUrl(app.Options.DatabaseUrl);
} else {
Debug.LogError(System.String.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
// Firebase Unity SDK is not safe to use here.
}
});
}
Ниже моя попытка получить доступ к базе данных firebase
DatabaseReference mDatabaseRef = FirebaseDatabase.DefaultInstance.RootReference;
staticLocalData.thisUser = new UserData();
staticLocalData.thisUser.userID = newUser.UserId;
staticLocalData.thisUser.email = email;
staticLocalData.thisUser.firstName = firstName;
staticLocalData.thisUser.lastName = lastName;
registerData temp = new registerData();
temp.firstName = firstName;
temp.lastName = lastName;
temp.email = email;
temp.userName = userName;
Debug.Log(JsonUtility.ToJson(temp));
mDatabaseRef.Child("users").SetValueAsync("saddsa:23");
//mDatabaseRef.Child("users").Child(newUser.UserId).SetRawJsonValueAsync(JsonUtility.ToJson(temp));
Набор правил: (Должно быть разрешено для всех)
{
"rules": {
".read": true,
".write": true
}
}
Дополнительные замечания:
@FrankvanPuffelen, извините, я разместил не тот, я обновил его со стороны firebase
@FrankvanPuffelen При этом я изначально делал проект как firestore, но я могу переключаться между firestore и firebase на странице проекта. Повлияет ли это на ситуацию?
Сообщение «Нет маршрута к хосту», похоже, указывает на то, что клиент не может связаться с серверами Firebase. Это может указывать на проблему в самом клиенте (например, прокси) или на проблему между клиентом и сервером (например, брандмауэр).
@FrankvanPuffelen, где мне искать, чтобы отладить это? Имейте в виду, что аутентификационная часть firebase работает отлично. Кроме того, как только я выхожу из режима воспроизведения редактора Unity, ошибки продолжают появляться. и останавливаться только тогда, когда я снова нажимаю воспроизведение в редакторе
@FrankvanPuffelen При дальнейшем тестировании именно эта строка вызывает появление ошибок: DatabaseReference mDatabaseRef = FirebaseDatabase.DefaultInstance.RootReference;
Если Auth работает, а RTDB нет, это может быть брандмауэр, блокирующий трафик сокетов (веб). Но это не более чем (слегка обоснованное) предположение. Хороший способ проверить эту теорию - попробовать из другой сети, например дома или по тарифному плану вашего телефона.
@FrankvanPuffelen Я думаю, ваше образование правильное. У меня та же проблема. Я отключил брандмауэр, и он работает примерно в 50% случаев, в других случаях возникает та же проблема. Похоже, ни у кого нет решения этой проблемы ...





С использованием:
Редактор Unity 2018.2.5f1 в OSX Sierra 10.12.6
среда выполнения сценариев 4.x
бэкэнд сценариев IL2CPP
API уровня 4.x
Плагин Firebase версии 5.2.1
Возникла та же самая проблема. Похоже, это связано с реализациями Mono Websocket, что более подробно обсуждается по следующим вопросам:
https://github.com/firebase/quickstart-unity/issues/106
https://github.com/firebase/quickstart-unity/issues/162
Команда разработчиков Firebase обошла описанное здесь, предоставив собственные собственные реализации веб-сокетов для каждой платформы. Видимо реализация редактора Unity отстает.
Здесь можно было обойти эту проблему, отключив FirebaseDatabase.dll в ../Firebase/Plugins/Mono/ для платформы редактора, а затем вместо этого включив одну FirebaseDatabase.dll непосредственно в ../Firebase/Plugins/.
Все идет нормально.
Что вы имеете в виду под "отключением" dll? Я безуспешно переименовывал / удалял их
Когда вы нажимаете на файл DLL, упомянутый выше, вы увидите флажки для отключения и включения. Но отключение dll uder mono влияет на вызовы базы данных моего проекта
Это исправлено в новом июльском выпуске firebase_sdk_v6.2.1.
Ваш код предназначен для базы данных Firebase Realtime, но правила безопасности, которые вы показываете, предназначены для Cloud Firestore. Эти две базы данных полностью разделены, поэтому убедитесь, что правила безопасности и база данных совпадают.