Firebase规则-权限被拒绝

时间:2020-05-02 07:29:59

标签: firebase firebase-realtime-database firebase-security

我有一个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 "
  }
}

但是,我收到消息“权限被拒绝”。数据的首次写入是完美无缺的。有人可以指导。

1 个答案:

答案 0 :(得分:0)

您确定从代码中读取/写入正确的节点。
您可以访问此节点中的读/写=> Orders/{Orders_id}
您将无法访问此节点=> Orders