Firebase Realtime на iOS: не удается получить доступ к базе данных в реальном времени

#ios #xcode #firebase #firebase-realtime-database

# #iOS #xcode #firebase #firebase-realtime-database

Вопрос:

Я получаю следующую ошибку:

[Firebase / Database] [I-RDB034005] Соединение с базой данных Firebase было принудительно прервано сервером. Не будет пытаться повторно подключиться. Причина: ошибка Firebase. Пожалуйста, убедитесь, что вы правильно написали имя вашей Firebase

Разрешения на консоли администратора установлены .чтение и .запись в false

Я понимаю ошибку. когда я запускаю следующую команду и печатаю значение переменной:

 Database.database().reference()
 

Я получаю (не могу его отредактировать):

https://bananas-31fe5-default-rtdb.firebaseio.com

И в консоли администратора у меня есть (не могу ее отредактировать):

https://bananas-31fe5-default-rtdb.europe-west1.firebasedatabase.app

В консоли администратора я попытался создать новую базу данных (и отключить основную) в США, но та, что в xcode, похоже, не изменилась.

Я чувствую, что это связано с тем, что библиотека pod не обновляется для включения нескольких местоположений db (EU находится в бета-версии).

Комментарии:

1. Я получил эту ошибку, потому что я нажал неправильную кнопку слева в консоли firebase и создал базу данных Firestore вместо базы данных в реальном времени. Как только я создал правильную базу данных, ошибка устранена, и приложение работает.

Ответ №1:

firebaser здесь

Для баз данных, не относящихся к центральной части США, SDK может быть не в состоянии считывать информацию из plist файла, поэтому вы должны передать ее в коде.

Вы можете передать URL-адрес базы данных в вызов database , например:

 Database.database("https://bananas-31fe5-default-rtdb.europe-west1.firebasedatabase.app").reference()
 

См. Документы для переопределения этого метода.

Комментарии:

1. Сбой приложения: «Недопустимый URL-адрес ( bananas-31fe5-default-rtdb.europe-west1.firebasedatabase.app ) передается в getReference(). Ожидалось, что URL-адрес будет соответствовать настроенному URL-адресу базы данных: bananas-31fe5-default-rtdb.firebaseio.com

2. Хммм … это должно сработать, насколько я понимаю. Можете ли вы указать точный код, который вы используете в своем вопросе? Также: какую версию iOS SDK вы используете?

3. Товарищ по команде заметил мою ошибку: URL-адрес базы данных должен входить в вызов database(...) . Я тоже исправил это в своем ответе, так что попробуйте.

Ответ №2:

При первом создании базы данных в реальном времени DATABASE_URL добавляется в ваш файл GoogleService-Info.plist на стороне сервера. Возможно, вы получаете сообщение об ошибке, поскольку GoogleService-Info.plist устарел и не содержит DATABASE_URL . Вы можете загрузить обновленный файл GoogleService-Info.plist из настроек вашего проекта и повторить попытку.

Надеюсь, это помогло