我正在尝试保护我的新firebase数据库。
我的结构:
parentNode
-- child1
-- child2
我想阻止
我希望能够:
我目前的(非常基本的......)解决方案:
parentNode: {
".write": "newData.exists()",
}
这可以防止从父级删除所有数据,但也可以防止删除ONLY子级,因为这意味着父级没有新数据。
任何指针?
解:
弗兰克的答案是正确的。我之前尝试过这个,但它没有用,因为我没有用childNode
制作变量 - 因为我不打算使用它。
"parentNode:" {
"childNode": { // <-- This was the problem
".write": "data.exist() || newData.exists()"
}
}
正确的版本:
"parentNode:" {
"$childNode": { // <-- Notice the $
".write": "data.exist() || newData.exists()"
}
}
Firebase最终忽略了我的规则,因为没有名称为'childNode'的节点。
答案 0 :(得分:0)
重要的规则是始终在正确的级别上强制执行您的要求。由于您的规则似乎适用于子节点,因此应该强制执行它们。
我认为你正在寻找类似的东西:
parentNode: {
"$childNode": {
".write": "data.exists() || newData.exists()",
}
}
所以你可以写任何你想要的东西,或者如果那里有现有价值你可以写null
。