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

Posted

技术标签:

【中文标题】Firebase 数据库规则权限被拒绝但模拟工作【英文标题】:Firebase Database Rules Permission Denied but Simulation Working 【发布时间】:2019-03-10 04:33:53 【问题描述】:

我一直在尝试使用数据库规则和通过 CLI 托管来创建一个主要是公共数据库,但有一些限制。如果我在规则下声明它打开,我可以访问数据库,但是如果我从顶层删除读/写并尝试只访问一个子“规则”,我会遇到权限错误:

[2018-10-04T16:13:56.926Z] @firebase/数据库:FIREBASE 警告:设置 在 /2019/statistics/topTens/Strider Balance Bike/1 失败:permission_denied 未捕获(承诺中)错误:PERMISSION_DENIED:权限被拒绝

我的数据库规则是:


 "rules": 
  "participants": 
   "$pid": 
    ".read": true,
    ".write": true
   
  ,
  "statistics": 
   ".read": true,
   ".write": true
  ,
  "users": 
   "$uid": 
    ".read": "$uid === auth.uid",
    ".write": "$uid === auth.uid"
   
  
 

当我尝试写入统计数据时,即使 .read 和 .write 为真,我也会收到上述错误。它与默认要求身份验证的数据库有关吗?我也在使用 firebase 托管来托管它。我已确保 database-rules.json 文件的配置方式也与 firebase 中的数据库规则相同。我也用 firebase 服务重新启动了本地服务器,没有运气。我在这里做错了什么?

【问题讨论】:

【参考方案1】:

仔细检查错误信息:

设置在 /2019/statistics/topTens/Strider Balance Bike/1 失败

您的写入植根于/2019,而不是/statistics,正如您的规则所期望的那样。您的规则不允许任何以/2019 开头的写入。

【讨论】:

天哪,我完全忘记了我在那里添加的。非常感谢!

以上是关于Firebase 数据库规则权限被拒绝但模拟工作的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 安全规则完全打开,但仍然授予权限被拒绝错误

Firebase 权限被拒绝错误

Firebase 规则 - 权限被拒绝

与 Firebase DatabaseError 一起颤动:权限被拒绝 [重复]

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

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