Как защитить базу данных Firebase многопользовательской учетной записью - PullRequest
0 голосов
/ 10 мая 2018

Все примеры показывают защиту базы данных Firebase одним пользователем. В моем приложении у меня есть несколько пользователей Firebase Auth, которые сгруппированы в учетную запись. Все пользователи учетной записи должны иметь доступ для чтения / записи к узлам, сгруппированным под идентификатором учетной записи.

Вот пример того, как это структурировано:

- users
  - [user id1]
  - [user id2]
  - [user id3]
- accounts
  - [account id1]
     - [user id1]
     - [user id2]
  - [account id2]
     - [user id3]
- things
  - [account id1]
     - thing 1
     - thing 2
  - [account id2]
     - thing 3
     - thing 4

Я хочу, чтобы только пользователи, являющиеся частью учетной записи, могли читать / писать «вещи» в своем узле учетной записи. Поэтому [user id1] и [user id2] должны иметь возможность читать / писать только «вещи» в узле [account id1]. Возможно ли это с правилами базы данных Firebase?

1 Ответ

0 голосов
/ 10 мая 2018

Комментарий Фрэнка по моему вопросу привел меня в правильном направлении и привел меня к этой теме, где я нашел нужный мне ответ:

https://stackoverflow.com/a/19524810/265333

Я также сохранил [идентификатор учетной записи] с пользователем:

- users
  - [user id1]
     - [account id1]
  - [user id2]
     - [account id1]
  - [user id3]
     - [account id2]

Как только я это сделал, я мог бы написать правило базы данных, например:

"things":{
          "$acctid":{
            ".read": "auth != null && root.child('users').child(auth.uid).child('AccountId').val() == $acctid",
            ".write": "auth != null && root.child('users').child(auth.uid).child('AccountId').val() == $acctid"
          }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...