5

firebase 文档中的示例假设手动更新 firebase 安全规则。如何以编程方式修改安全规则以支持现实世界的协作应用程序?在我正在考虑的用例中,要求用户能够邀请其他用户协作/共享选定的数据,并能够授予/撤销对协作者的访问权限。如何使用 Firebase 来实现这一点?

4

2 回答 2

11

您实际上不应该以编程方式更改您的安全规则。您应该将它们视为代码,并且仅在部署时更改它们。

如果您尝试更改用户实际允许执行的操作,您应该通过编写依赖于 Firebase 中数据的安全规则来做到这一点。

例如,假设您希望将访问一段数据的权限仅限于特定组中的用户。无需每次更改组成员身份时修改安全规则,您只需将组存储在 Firebase 中并让您的安全规则检查当前用户是否在该组中,然后再允许访问。

".read" : "root.child('groups').child($groupID).child(auth.userid).exists()"

这样,只要组成员资格发生变化,用户就会自动获得访问他们应该被允许查看的数据的权限。

有关更复杂的安全规则示例,请查看Firefeed中的 rules.json 文件。

于 2013-12-15T03:58:22.057 回答
0

但是如何处理动态添加的数据集呢?

您可以通过使用子$节点来做到这一点。它看起来像这样:

这是我的数据库

users
- userIDHere
  - name: John Doe
  - whatever: who knows

您可以通过以下方式为每个用户设置规则:

{
  "rules": {
    "users": {
      "$user": {
        // whatever rules you want here, and you can reference $user to get the user's id.
      }
    }
  }
}

希望这是您的要求,希望对您有所帮助!

于 2017-12-21T19:08:14.793 回答