Firebase - 安全规则限制写入节点所有者/创建者

时间:2015-11-03 21:08:40

标签: firebase-security

在下面的屏幕截图中,我的details分支/节点包含许多以random-id命名的详细信息。如示例所示,8641260c-900...是一个详细记录,还有其他几个类似记录。

我想知道我的.write规则是否正确?我想启用限制,以便当前auth.id与现有记录{{1}完全匹配} field。

我还想限制删除记录(通过user我可以简单地将.remove添加到&& !data.exists() || newData.exists()规则吗?

提前致谢。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

  

我想知道我的.write规则是否正确?

首先,将".read":true".write":true提供给根目录会将所有子节点规则覆盖为true。因此,为子节点指定的任何规则都将变得多余。

  

我想启用限制,以便当前auth.id与现有记录的用户字段完全匹配。

{"rules":{
    "existing_record":{
        "user":{
            ".write":"newData.isString() && auth.uid == newData.val()"
        }
    }
}}
  

我还想限制删除记录(通过.remove)。

newData.exists()将阻止删除节点。 newData 表示操作发生后数据的外观。因此,通过确保操作后存在 newData ,禁止删除节点。