我一直在尝试使用数据库规则和通过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服务重新启动了本地服务器,但是不走运。我在这里做什么错了?
答案 0 :(得分:1)
非常仔细地检查错误消息:
设置为 / 2019 / statistics / topTens / Strider Balance Bike / 1 失败
您的写操作根植于/2019
,而不是您的规则所期望的/statistics
。您的规则不允许以/2019
开头的任何写操作。