Firebase 规则 - 权限被拒绝

Posted

技术标签:

【中文标题】Firebase 规则 - 权限被拒绝【英文标题】:Firebase rule - Permission Denied 【发布时间】:2020-08-16 17:35:35 【问题描述】:

我有一个firebase数据,其数据结构如下:


  "users": 
     "123456": 
         "Name": "ABC"
         "uid": "123456"
     
  
  "Orders":
     "987654": 
         "Customer ID": "123456"
         "Other Details":  *****
     
  

其中 users 是我的数据库中的用户列表。订单是每个用户下的订单。显示的用户 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】:

您确定从编码中读取/写入正确的节点吗? 您可以在此节点中访问读/写 => Orders/Orders_id 您无法访问此节点中的读/写 => Orders

【讨论】:

以上是关于Firebase 规则 - 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 实时数据库规则被拒绝权限

当observeSingleEvent时Swift Firebase规则权限被拒绝

Firebase 数据库规则权限被拒绝但模拟工作

Firebase 权限被拒绝

Firebase 规则 query.equalTo 始终在 REST 上返回“权限被拒绝”

Firebase 存储安全规则 400 错误问题“权限被拒绝。无法访问存储桶 xxxxx-****.appspot.com”