Установка программного доступа на основе ролей - PullRequest
0 голосов
/ 10 июня 2019

Я разработал приложение для Android, которое использует базу данных Firebase в реальном времени.Несколько узлов в БД хранят различные данные, собранные моим приложением.Для проверки подлинности вход в систему и регистрация по электронной почте и паролям работают правильно.Когда я регистрирую нового пользователя, аутентификация работает, но этому новому пользователю необходимо предоставить доступ к узлам базы данных firebase, которые использует приложение.Моему приложению необходимо предоставить этому новому пользователю доступ к узлам базы данных firebase, необходимым для взаимодействия с приложением.

Другими словами, как мне программно, через мое приложение, изменить правила доступа / безопасности узла firebase в моем приложении(когда я в настоящее время знаю только, как изменить их через пользовательский интерфейс браузера Firebase)?Я не вижу методов в FirebaseAuth, чтобы сделать это.Итак, куда мне идти отсюда?

Кроме того, очевидно, что у нового пользователя моего приложения не будет моих учетных данных, но он должен иметь возможность самостоятельно добавлять доступ к моим существующим узлам базы данных Firebase в реальном времени.Как мне это?

Вот правила, которые у меня есть сегодня (где мой UID - это мой фактический UID firebase):

{
  "rules": {
    ".read": "auth.uid === my UID",
    ".write": "auth.uid === my UID"
  }
}

Теперь я понимаю, что должен установить правила, позволяющие всем аутентифицированным пользователям читать и писать.данные в различных узлах моего дерева.Я пока не понимаю, как предоставить доступ по узлам и, в частности, по конкретным узлам на основе uid в дереве, где может быть много UID для каждого пользователя.Например, если мое дерево - root (top), то сообщения, затем UID для каждого пользователя, каков синтаксис для правила авторизации, которое позволит текущему пользователю / UID читать / записывать данные только в его / ее UIDпод root, сообщения, его / ее UID пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...