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

Firebase-Database: deny in general but allow for specific path

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

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

更新 1 好的,我发现 Rule-Cascading 使我无法按照上面的方式进行操作,因为

".write": "auth != null" 

阻止我写作。我怎样才能避免

firebase 规则自上而下级联,因此无法在较高级别阻止写入,但允许在较低级别写入。这是一个注释 right from the docs:

Note: Shallower security rules override rules at deeper paths. Child rules can only grant additional privileges to what parent nodes have already declared. They cannot revoke a read or write privilege.

您可能需要重组数据,使 foo 对象位于顶层,这样您就可以在其上设置不同的写入规则。

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