Вопрос:

Должен ли URL-адрес каждой базы данных соответствовать разным базам данных?

firebase firebase-realtime-database

17 просмотра

1 ответ

11 Репутация автора

Проблема с прямым доступом к URL-адресу ссылки на базу данных Firebase в реальном времени.

Наблюдение 1:

Проект находится в IoS, у меня есть следующий код в AppDeleage:

// Настройка БД по умолчанию FirebaseApp.configure ()

// Установить SecondDB FirebaseApp.configure (имя: "secondDB", параметры: secondDBOptions)

У меня нет проблем с добавлением записи в DB1 с использованием правил .read! = Null. Я также установил те же правила .read! = Null, полагая, что все прошедшие проверку пользователи смогут получить доступ к данным.

Код на одном из контроллеров представления для извлечения данных из SecondDB выглядит примерно так:

guard let secondDBNews = FirebaseApp.app (name: "secondDBNews") else {assert (false, "Не удалось получить новости")}

let usersDB = Database.database (app: secondDBNews) .reference (). child (mainDelegate.firebaseEnvironment) .child ("Users"). child (String (Auth.auth (). currentUser? .uid ?? ""))

usersDB.queryOrdered (byChild: "Email"). наблюдайте единый случай (из: .childAdded, с: {снимок в ... ... ...

Вышеприведенное выглядит нормально и читаемо, когда .read = true (любой может читать). Однако, когда он установлен в .read! = Null, ошибка указывает, что у него нет разрешения.

Наблюдение 2:

По умолчанию используется URL-адрес https://DefaultDB-1234.firebaseio.com/.

Вторая база данных имеет URL-адрес, например: https://SeconDB-1234-abc.firebaseio.com/

2 базы данных - по умолчанию и вторая

Для первого я могу загрузить URL-адрес как таковой в браузере: https://defaultDB-1234.firebaseio.com/Dev/User1/Projects

DefaultDB содержит данные

И он будет отображать данные под деревом.

Вторая БД также содержит данные.,

введите описание изображения здесь

Тем не менее, когда я пытаюсь загрузить URL в браузере: например. https://SecondDB-1234-abc.firebaseio.com/Dev/Article/Day1

Вместо загрузки данных из SecondDB, он на самом деле разрешает загрузку DefaultDB и сообщает мне, что данные имеют значение NULL, даже если там есть данные. Результат показывает ноль

Вопросы: 1. Оба наблюдения связаны друг с другом? 2. Есть ли какая-либо конкретная конфигурация аутентификации, которую я пропустил?

Автор: user10513445 Источник Размещён: 15.07.2019 03:58

Ответы (1)


0 плюса

11 Репутация автора

Похоже, что вторая база данных должна ссылаться непосредственно через строку URL.

Итак: FirebaseApp.configure (имя: "secondDB", параметры: secondDBOptions)

Не сработает

Вместо этого: let secondDBURL = " https://SecondDB-1234-abc.firebaseio.com "

затем

Проблема с прямым доступом к URL-адресу ссылки на базу данных Firebase в реальном времени.

Наблюдение 1:

Проект находится в IoS, у меня есть следующий код в AppDeleage:

// Настройка БД по умолчанию FirebaseApp.configure ()

// Установить SecondDB FirebaseApp.configure (имя: "secondDB", параметры: secondDBOptions)

У меня нет проблем с добавлением записи в DB1 с использованием правил .read! = Null. Я также установил те же правила .read! = Null, полагая, что все прошедшие проверку пользователи смогут получить доступ к данным.

Код на одном из контроллеров представления для извлечения данных из SecondDB выглядит примерно так:

guard let secondDBNews = FirebaseApp.app (name: "secondDBNews") else {assert (false, "Не удалось получить новости")}

let usersDB = Database.database (app: secondDBURL) .reference (). child (mainDelegate.firebaseEnvironment) .child ("Users"). child (String (Auth.auth (). currentUser? .uid ?? ""))

Буду работать.

Автор: user10513445 Размещён: 11.08.2019 08:24
32x32