在我的Firebase安全规则中,我希望匿名用户能够读取除一个字段(secret_field
)以外的任何内容:
{
"rules": {
".read": true,
".write": "auth != null",
"stuff" : {
"$stuffID" : {
"secret_field" : {
".read" : "auth != null"
}
}
}
}
}
但是,在Firebase中,如果secret_field
的任何读取规则评估为true,则授予secret field
上的读取权限。
有没有办法扭转这种行为? (如果在secret_field
的路上的任何读取规则评估为false,则禁止读取访问权限)
答案 0 :(得分:10)
您无法撤消行为,但您可以通过为公共字段引入“容器”并将.read设置为true来解决此问题。例如:
{
"rules": {
"stuff" : {
"$stuffID" : {
"public" : {
".read": true
},
"secret_field" : {
".read" : "auth != null"
}
}
}
}
}
然后所有人都可以访问... / public /下的所有内容,但只有经过身份验证的用户才能访问... / secret_field。