我的火力结构看起来像这样:
{
"post": {
"uid": {
"text": "Name";
}
},
"games": {
"id": {
"title": "buttons",
"text": "(user id string)"
},
"id": {
"title": "navbars",
"text": "(id string)"
}
},
"guides": {
"1": {
"title": "guide",
"text": "unwriteable string"
}
}
}
(值无关紧要。
我想允许在每个节点上读写,执行指南节点,
所以我尝试了以下规则:
{
"rules": {
".read": "auth == null",
".write": "auth == null",
"guides": {
".write": false
}
}
}
但是,不幸的是,由于"父亲"津贴,Firebase并不关心指南的具体规则,
知道如何实现我的目标吗?
Bacause Firebase 安全规则级联 你不能说有人有权在任何地方写字,后来又说但不能在这里写。
因此,在您的情况下,您必须为其他路径添加规则,如下所示:
{
"rules": {
".read": "auth == null",
"guides": {
".write": false
},
"games": {
".write": "auth == null"
},
"post": {
".write": "auth == null"
}
}
}
正如加藤所说,这也可以通过以下规则来完成:
{
"rules": {
".read": "auth == null",
".write": "auth == null && !newData.hasChild('guides')"
}
}
第一个示例将允许您仅在games
和post
节点中写入,而第二个示例将允许您在除guides
节点之外的所有位置写入。