我有一个firebase数据,其数据结构如下:
{
"users": {
"123456": {
"Name": "ABC"
"uid": "123456"
}
}
"Orders":{
"987654": {
"Customer ID": "123456"
"Other Details": *****
}
}
}
用户是我数据库中用户的列表。订单是每个用户下的订单。显示的用户ID和订单ID是虚拟的。它们是通过按键生成的。现在,如果“客户ID”与用户ID相同,则用户可以读取订单。为此,我具有以下Firebase规则:
"Orders":{
".indexOn": ["Customer ID"],
"$Orders_id": {
".write": "((root.child('Orders/'+$Orders_id+'/Customer ID').val() === auth.uid && auth != null) ||(auth != null && !data.exists())",
".read": "root.child('Orders/'+$Orders_id+'/Customer ID').val() === auth.uid && auth != null "
}
}
但是,我收到消息“权限被拒绝”。数据的首次写入是完美无缺的。有人可以指导。
答案 0 :(得分:0)
您确定从代码中读取/写入正确的节点。
您可以访问此节点中的读/写=> Orders/{Orders_id}
您将无法访问此节点=> Orders