如何编写规则以防止从数据库中删除任何节点

时间:2017-01-29 10:28:18

标签: firebase-realtime-database firebase-security

我正在尝试编写规则来保护数据库。但是我在编写一条规则时会感到困惑,该规则会阻止从数据库中删除任何节点。我已阅读有关newData.exists的内容,但当我尝试在模拟器中运行时,删除成功了!由于可以通过将其值设置为null来删除节点,因此我尝试将节点的值模拟为null并且它成功,这是不希望的。

假设我有这个节点:

root{
Number of Users:20
}

我写了这些规则:

"Number of Users":{
".read":true,
 ".write":"auth!==null && newData.exists()"
 }

我有任何错误,请纠正我。

1 个答案:

答案 0 :(得分:20)

允许添加新节点,但阻止删除或覆盖任何节点:

".write": "!data.exists()"

允许添加和覆盖但不删除任何节点:

".write": "newData.exists()"

更新:针对这些规则的模拟器的屏幕截图 Cannot write null