我在Firebase上设置规则如下:
"Data": {
".read": true,
"data1": {
".write": "root.child('Permissions').child(auth.uid).val() == 'admin'",
".read": true
},
"data2": {
".write": "root.child('Permissions').child(auth.uid).val() == 'admin'",
".read": "root.child('Permissions').child(auth.uid).val() == 'admin'"
}
}
在我的代码中,当我读取节点“数据”时,我希望这样,如果用户没有“admin”权限,则数据返回应该只包含“data1”节点,否则“data1”和“返回“data2”。目前,当我得到孩子“数据”时,两者都返回。
答案 0 :(得分:1)
根据docs:
{
"rules": {
"foo": {
// allows read to /foo/*
".read": "data.child('baz').val() === true",
"bar": {
/* ignored, since read was allowed already */
".read": false
}
}
}
}
如果您允许在更高级别(".read": true
)上进行读取或写入,则会忽略树中的其他规则(".read": "root.child('Permissions').child(auth.uid).val() == 'admin'"
)。