如何编写规则以防止从数据库中删除节点 [英] How to write a rule to prevent any deletion of node from database
问题描述
我正在尝试编写规则来保护数据库.但是我对编写一条规则感到困惑,该规则将阻止从数据库中删除任何节点.我已经阅读了有关newData.exists
的信息,但是当我尝试在模拟器中运行它时,删除成功!由于可以通过将节点的值设置为null来删除该节点,因此我尝试将node的值模拟为null并成功完成,这是不希望的.
I am trying to write rules to secure database. But I am confused on writing a rule which will prevent from deleting any node from database. I have read regarding newData.exists
but when I tried running it in simulator deletion was succeeded! As a node can be deleted by setting its value to null, so I tried simulating the value of node to null and it was successful, which was not desired.
假设我有这个节点:
root{
Number of Users:20
}
我写了这些规则:
"Number of Users":{
".read":true,
".write":"auth!==null && newData.exists()"
}
如果我有任何错误,请纠正我.
Am I making any mistake, please correct me.
推荐答案
要允许添加新节点,但要防止删除或覆盖任何节点:
To allow adding new nodes, but prevent deleting or overwriting any node:
".write": "!data.exists()"
要允许添加和覆盖(但不能删除)任何节点,
To allow adding and overwriting, but not deleting, any node:
".write": "newData.exists()"
更新:这些规则的模拟器屏幕截图
这篇关于如何编写规则以防止从数据库中删除节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!