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
.
开头的任何写入
我一直在尝试创建一个主要是 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
.