Firebase数据库删除安全规则

时间:2016-12-18 20:49:09

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

我目前正在创建Firebase安全规则,以防止用户将节点设置为null并删除该节点中的所有数据。

这是我的架构

$(document).on(event, selector, function(){

     //implementation 

});

这些是我的规则

{
  "folder" : {
    "item1" : {
      "dataset1" : {
        "data1" : 123,
        "data2" : 456,
        "data3" : 789
      }
    }
  }
}

使用内置模拟器我得到了这些结果:

The write is properly denied and doesn't let user set folder node to null

当location设置为“/ folder / item1”和“/ folder / item1 / dataset1”

时,此方法有效

However when location is set to "/folder/item1/dataset1/data1" the write is allowed and the data is deleted.

如果我在data1中有更深的节点,那么它们都将被删除,因为允许写入。

感谢您的阅读。打开任何答案,最好不需要更改架构。

1 个答案:

答案 0 :(得分:0)

我不清楚你在问什么。但是你的规则存在一些问题,所以我只是指出这些问题,希望他们回答你的问题。

  1. 您授予/folder的写入权限,您无法在较低级别获取该权限。
  2. 只要任何数据留在/folder下,就允许任何写入。需要记住的是newData是写操作后存在的位置数据;它不只是写入的新数据。
  3. 我的印象是您尝试使用.validate规则阻止删除。请记住,删除数据时不会执行验证,因此您无法使用.validate规则来阻止删除。
  4. 我怀疑#2导致了您当前的问题。