我尝试使用write
允许auth.uid in ['ciAujxIqXQSdaaaaaaaaaa', 'bbb']
使用uid列表,但这不是正确的语法,我该怎么做?
{
"rules": {
"orders": {
".read": "auth != null",
".write": "(data.child('uid').val() == auth.uid) || auth.uid in ['ciAujxIqXQSdaaaaaaaaaa', 'bbb']",
".indexOn": ["negative_epoch"]
},
"users": {
".read": "auth != null",
".write": "auth != null",
},
}
}
答案 0 :(得分:1)
实时数据库的安全规则语言中没有in
操作。因此,您必须自己做:
"(data.child('uid').val() == auth.uid) || auth.uid == 'ciAujxIqXQSdaaaaaaaaaa' || auth.uid == 'bbb'"
我通常发现以这种方式添加2或3个UID之后,我在数据库中创建了一个新的顶级列表来保存这些UID:
"admins": {
"ciAujxIqXQSdaaaaaaaaaa": true,
"bbb": true
}
然后检查我规则中的那个列表:
"(data.child('uid').val() == auth.uid) || root.child('admins').child(auth.uid).exists()"