Firebase-Database:一般拒绝但允许特定路径

时间:2017-11-03 15:38:00

标签: firebase-realtime-database firebase-authentication firebase-security

我尝试生成我的Firebase-DB规则,并希望在没有身份验证的情况下拒绝写入,并且只允许它用于特定路径。它正确发布但不起作用。 http://myproject.firebaseio.com/test/foo

{ 
   "rules": {
     ".read": true,
     ".write": "auth != null",
     "foo":{
       ".write": "true"      
     } 
   } 
}

更新1 好吧,我发现Rule-Cascading让我无法完成上面的工作,因为

".write": "auth != null" 

阻止我写作。我怎么能避免那个

1 个答案:

答案 0 :(得分:2)

firebase规则从上到下规则级联,因此无法阻止更高级别的写入,但允许更低级别的写入。这是一个注释right from the docs

  

注意:较浅的安全规则会覆盖较深路径的规则。儿童   规则只能授予父节点具有的其他权限   已经宣布。他们无法撤销读取或写入权限。

您可能需要重新构建数据,以便BE对象位于顶层,这样您就可以使用不同的写入规则。

另一种选择是简单地删除根目录下的写入规则,并将其添加到需要经过身份验证的用户的任何其他根级别项目。