以下是对象列表的规则。如果您通过身份验证,则可以访问所有内容。如果没有,一些对象是公共的,一些不是(布尔公共属性)。 如果你试图直接访问对象,那么$ object的规则工作正常。
"list": {
".read": ???????????? ,
".write": "auth != null",
"$object": {
".read": "auth != null || data.child('public').val() === true",
".write": "auth != null"
}
}
但是如果你没有经过身份验证,我还需要规则来列出公共对象。如何在其父列表中为生成的$ key的属性设置读取规则?类似的东西:
"list":{
".read": "auth != null || data.child('$key').child('public').val() === true"
}
答案 0 :(得分:3)
您不能通过.read
进行过滤来自:https://firebase.google.com/docs/database/security/securing-data
规则不是过滤器
规则以原子方式应用。这意味着读或写 如果该位置没有规则,则操作立即失败 或者在授予访问权限的父级位置。即使每一个受到影响 子路径是可访问的,在父位置读取将失败 完全。