Правила для таблиц, имеющих отдельные данные для каждой компании - PullRequest
0 голосов
/ 28 июня 2019

В моем приложении Firebase каждый пользователь принадлежит компании (у компании может быть много пользователей), а данные в таблицах разбиты на Table_name \ COMPANY_ID \

COMPANY_ID определен в таблице Users.

Как например, таблица предметов будет:

Items\<COMPANY_ID>\Item_1
Items\<COMPANY_ID>\Item_2 and so on

Items table

Таблица пользователей определяется как:

Users\<AUTH_ID>\

User table

Где AUTH_ID - идентификатор аутентификации

Я хочу установить правила, чтобы пользователь мог получать доступ только к данным своей компании. Как сделать правила чтения и записи для таблицы Items (и всех других таблиц тоже)?

1 Ответ

1 голос
/ 28 июня 2019

Что-то вроде этого должно сработать:

{
  "rules": {
    "Items": {
      "$companyId": {
        ".read": "root.child('Users').child(auth.uid).child('CompanyId').val() 
                  === $companyId"
      }
    }
  }
}

Словами: разрешить пользователю аутентификации читать данные компании, если их CompanyId соответствует этой компании.

...