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

时间:2018-10-04 17:39:50

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

我一直在尝试使用数据库规则和通过CLI托管创建一个几乎没有限制的,主要为公共数据库。如果我声明数据库在规则下处于打开状态,则可以访问该数据库,但是如果我从顶层删除了读/写操作并尝试仅访问一个子“规则”,则会遇到权限错误:

  

[2018-10-04T16:13:56.926Z] @ firebase /数据库:防火墙警告:设置   在/ 2019 / statistics / topTens / Strider Balance Bike / 1上失败:Permissions_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为true,当我尝试写入统计信息时,也会出现上述错误。它是否与默认要求身份验证的数据库有关?我还使用Firebase托管来托管此内容。我已经确保将database-rules.json文件配置为与firebase中的数据库规则相同。我已经用firebase服务重新启动了本地服务器,但是不走运。我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

非常仔细地检查错误消息:

  

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

您的写操作根植于/2019,而不是您的规则所期望的/statistics。您的规则不允许以/2019开头的任何写操作。