我有一个用例,我希望仅当其ID有密钥===时,才允许其他用户读取ID密钥下的数据。
假设我有用户123和456在“
orders-
I
-123
I
-456
我只希望用户123和456能够读取456个节点。根据我提供的规则,只有123个节点可以读取节点:
"orders": {
"$uid": {
".read": "auth.uid === $uid || root.child('orders').child($uid).child(auth.uid).exists()",
".write": "auth.uid != null",
}
}
我在这里做错了什么?有人可以帮我吗?
编辑:模拟器的两个屏幕截图
答案 0 :(得分:0)
我通过设置以下规则解决了它(注意$ id嵌套在$ uid中):
{
"rules": {
"orders": {
"$uid": {
".read": "auth.uid === $uid",
".write": "auth.uid === $uid",
"$id": {
".read": "auth.uid === $id",
".write": "auth.uid === $id"
},
}
}
}
}
以前,我认为这条线应该可以完成工作:
".read": "auth.uid === $uid || root.child('orders').child($uid).child(auth.uid).exists()",