防止“删除并更新”firebase中的子项

时间:2017-05-22 14:40:20

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

我发现没有办法将安全规则设置为阻止孩子“删除和更新”。

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

这没有意义。

1 个答案:

答案 0 :(得分:3)

为了将来参考,Firebase控制台允许您测试数据库安全规则,以便在发布这些规则之前找到可行的方法。话虽如此,如果我正确理解您的问题,您希望允许用户添加到节点,但不能删除或更新。您正在寻找以下内容:

{
  "rules": {
    ...

    "childNodeName": {
       ".write": "!data.exists()"
    }
  }
}

你不应该需要其他两个条件。更不用说,他们永远不会解决这个问题,因为这些条件无法满足。

如果您需要在路径中添加多个子项,但您不希望用户在添加这些子项后修改这些子项,您也可以使用通配符:

{
  "rules": {
    ...

    "childNodeName": {
       "$pushId": {
          ".write": "!data.exists()"
      }
    }
  }
}