我尝试生成我的Firebase-DB规则,并希望在没有身份验证的情况下拒绝写入,并且只允许它用于特定路径。它正确发布但不起作用。 http://myproject.firebaseio.com/test/foo
{
"rules": {
".read": true,
".write": "auth != null",
"foo":{
".write": "true"
}
}
}
更新1 好吧,我发现Rule-Cascading让我无法完成上面的工作,因为
".write": "auth != null"
阻止我写作。我怎么能避免那个
答案 0 :(得分:2)
firebase规则从上到下规则级联,因此无法阻止更高级别的写入,但允许更低级别的写入。这是一个注释right from the docs:
注意:较浅的安全规则会覆盖较深路径的规则。儿童 规则只能授予父节点具有的其他权限 已经宣布。他们无法撤销读取或写入权限。
您可能需要重新构建数据,以便BE
对象位于顶层,这样您就可以使用不同的写入规则。
另一种选择是简单地删除根目录下的写入规则,并将其添加到需要经过身份验证的用户的任何其他根级别项目。