Firebase数据库规则中针对不同用户的多个规则

时间:2020-06-09 07:51:07

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

更新

这是我的Firebase数据库结构的样子,它具有两个主要节点结果和调查,如图所示”

Firebase Database Structure

这些是我当前的规则:

{
  "rules": {
    "surveys": {
      ".indexOn":["userId"],
    ".read": true,
    ".write": "auth.uid != null"
    },
  "results": {
    ".read": "auth.uid != null",
      "$resultid": {
    ".write": true
  }
  }
  }
}

基本上,当用户进行新调查时,将其存储在调查表中,现在,只有经过身份验证的用户才可以写模板,因此它非常好,现在是阅读部分,现在任何人都可以阅读整个调查节点,我无法在其中添加auth!= null,因为当有人共享他们的调查时,即使未经身份验证的用户也应该能够读取并执行该特定调查,所以我应该做些什么,以免所有人都阅读整个调查调查节点,但只有他们应该阅读的节点,否则任何人都可以通过拉起所有ID来执行任何人的调查。顺便说一下,$ resultid规则不起作用,现在仍然允许写访问:(

1 个答案:

答案 0 :(得分:0)

您能得到的最接近的

{
  "rules": {
    "surveys": {
      ".read": "auth != null",
      "$surveyid": {
        ".read": true,
        ".write": true
      }
    }
  }
}

这些规则:

  • 允许任何身份验证用户阅读所有调查。
  • 允许任何知道调查ID的人读取/写入该调查。您会注意到,这与第二个要求稍有不同,因为除非登录,否则无法知道是谁创建了每个调查。

更新

对于结果,然后添加:

"results": {
  ".read": "auth != null",
  "$resultid": {
    ".write": true
  }
}
相关问题