Firebase使现有数据不可修改,但可以写入和读取新数据

时间:2016-10-07 22:45:24

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

我开始将Firebase用于我的新项目,该项目会收集大量数据。如何设置规则以便:

  • 程序可以读取所有数据
  • 程序可以编写新数据
  • 程序无法修改或删除现有数据

这就是我所拥有的:

{
  "rules": {
    "users":{
      ".read": true,
      ".write": "!data.exists() && newData.exists()",
    }
  }
}

我的数据结构如下:

(name of project) -> users -> (user ID) -> data

我现在遇到的问题是每次写入都被阻止,无论新数据是否存在。我需要更改什么来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您忘记在规则中添加用户ID。现在没有人能够在第一个用户添加他的数据后写。要解决此问题,只需在规则中为用户ID添加wildcard path,如下所示:

{
  "rules": {
    "users":{
      ".read": true,
      "$userid":{
        ".write": "!data.exists() && newData.exists()"
      }
    }
  }
}
相关问题