【问题标题】:firebase security rule which will prevent the updation or deletion of existing nodefirebase 安全规则,将防止更新或删除现有节点
【发布时间】:2018-11-14 19:05:10
【问题描述】:

例如,如果我创建了一个节点(书),它的子节点(作者)具有值(“作者姓名”)。我想要的是将来没有人可以更新或删除这个子节点。我知道使用 firebase 安全规则是可能的,但我无法找出最佳方法。

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-security


    【解决方案1】:

    您可以编写一个数据库规则,只允许创建新数据,一旦写入就不能编辑任何内容。

    这允许您在 $key 位置不存在数据的情况下创建新的 book。它还确保newData 存在并且authorstring 变量。

    {
      "rules": {
        "book": {
          "$key": {
            "author": {
              ".validate": "newData.isString()"
            },
            ".write": "data.val() == null && newData.val() != null"
          }
        }
      }
    }
    

    【讨论】:

    • 这确保了数据不能被删除,但还没有强制它不能被改变。为此,请添加newData.val() === data.val()
    • 不应该data.val() === null 强制create 只写,它不允许updatedelete
    • 嗯......这是一个很好的观点。它可能确实如此,所以我不确定为什么我使用另一个条件。嗯...两者都可以工作。
    • 我使用 Firebase-Bolt 并将创建呈现为 ".write": "data.val() == null" 所以它可能更简单?这三种解决方案都可以!
    • 啊...这是“一次写入”。不错!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2016-02-25
    • 2018-11-27
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多