如何设置Firebase规则以只允许db (或db的键、节点或子集)中列出的用户in在同一数据库的另一个键/子集中允许r/w?
这个link只提到db的同一个节点/键/子集的w/r。
例如,我要设置的是以下db:
'SomeDB' : {
'ListOfUsers': {
'key1' : { 'key': 'key1', 'name' : 'name1' },
'key2' : { 'key' : 'key2', 'name':'name2'},
and so on...
},
{'SomethingForWR': 'Some Database'}
只有在“SomethingForWR”(SomeDB)中的“auth.uid”等于“ListOfUsers”中的一个或一个键(也是“SomeDB”的一部分)时,才允许对该规则进行读写。
发布于 2021-12-02 20:33:00
如果要检查ListOfUsers
中是否存在密钥,可以使用以下方法:
root.child('ListOfUsers').child('keyYouWantToCheck').exists()
有了这些知识,如果用户的UID存在于SomethingForWR
中,允许用户访问ListOfUsers
的规则可能如下所示:
{
"rules": {
...
"SomethingForWR": {
".read": "root.child('ListOfUsers').child(auth.uid).exists()"
}
}
}
https://stackoverflow.com/questions/70209328
复制