【发布时间】:2020-05-28 03:54:50
【问题描述】:
我有一个 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')"
}
}
}
【问题讨论】:
标签: firebase firebase-realtime-database firebase-authentication firebase-security