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

Firebase Database Rules Permission Denied but Simulation Working

我一直在尝试创建一个主要是 public 的数据库,它使用数据库规则并通过 CLI 进行托管,但有一些限制。如果我根据规则声明它是开放的,我可以访问数据库,但是如果我从顶层删除 read/write 并尝试仅访问它 child "rules" 我会遇到权限错误:

[2018-10-04T16:13:56.926Z] @firebase/database: FIREBASE WARNING: set at /2019/statistics/topTens/Strider Balance Bike/1 failed: permission_denied
Uncaught (in promise) Error: 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 服务重新启动了本地服务器,但不走运。我在这里做错了什么?

仔细检查错误消息:

set at /2019/statistics/topTens/Strider Balance Bike/1 failed

您的写入植根于 /2019,而不是您的规则所期望的 /statistics。您的规则不允许以 /2019.

开头的任何写入