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

MrA*_*_SU 6 firebase-security firebase-realtime-database

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

假设我有这个节点:

root{
Number of Users:20
}
Run Code Online (Sandbox Code Playgroud)

我写了这些规则:

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

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

Fra*_*len 24

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

".write": "!data.exists()"
Run Code Online (Sandbox Code Playgroud)

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

".write": "newData.exists()"
Run Code Online (Sandbox Code Playgroud)

更新:这些规则的模拟器的屏幕截图 不能写null

  • 我正在使用 newData.exists() 和 auth!=null 并通过设置该节点的值 =null,该节点被删除。我该如何预防?我已经检查了模拟器。 (2认同)