У меня есть база данных Firebase в реальном времени. В настоящее время он содержит два узла admin
и common
{
"admin" : {
"adminval" : 9898574632,
"adminval1" : 645354536,
"adminval2" : 7776756433
},
"common" : {
"commonval" : 123433221
}
}
. Я добавил к каждому пользовательскому требованию пользователя roles
, которое описывает роли, которые пользователь играет в моей системе. Это выглядит так:
{'roles': ['ROLE_ADMIN', 'ROLE_USER']}
Теперь я хотел бы ограничить доступ, чтобы только пользователи с утверждением ROLE_ADMIN
имели право на чтение / запись admin
узел и с любой из ролей могли читать / писать узел common
.
Как это сделать? Я пробовал что-то вроде этого:
{
"rules": {
"admin": {
".read": "auth.token.roles.contains('ROLE_ADMIN')",
".write": "auth.token.roles.contains('ROLE_ADMIN')"
}
"common": {
".read": "auth.token.roles.contains('ROLE_USER') || auth.token.rules.contains('ROLE_ADMIN')",
".write": "auth.token.roles.contains('ROLE_USER') || auth.token.rules.contains('ROLE_ADMIN')"
}
}
}