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

标签 firebase-realtime-database firebase-security

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

假设我有这个节点:

root{
Number of Users:20
}

我写了这些规则:
"Number of Users":{
".read":true,
 ".write":"auth!==null && newData.exists()"
 }

我有没有弄错,请纠正我。

最佳答案

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

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

要允许添加和覆盖但不允许删除任何节点:
".write": "newData.exists()"

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

关于firebase-realtime-database - 如何编写规则以防止从数据库中删除任何节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919866/

相关文章:

ios - 检测连接状态被调用两次

javascript - 数据格式不正确

java - 我在将 Firebase 实时数据库中的数据检索到字符串变量中时遇到问题

swift - 限制非高级用户每天只能写入一次 firebase 数据库

ios - 在 swift 4 中使用 firebase 实时数据库进行实时运输跟踪

javascript - Vue.js + Firebase - 如何显示深度嵌套的数据库

javascript - Firebase 如何比较数据规则中的变量(== vs ===)?

firebase - Firebase 存储规则是否会覆盖云存储权限?

swift - Firebase 规则中有关 indexOn 的恼人问题

Firebase 为用户设置角色