如何以编程方式修改Firebase中的安全规则?

问题描述 投票:5回答:2

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

security firebase firebase-security
2个回答
10
投票

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

如果您要执行的操作是更改用户实际允许执行的操作,则应通过编写依赖Firebase中数据的安全规则来执行此操作。

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

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

这样,无论何时组成员身份发生变化,用户都将被自动获得访问他们应该允许查看的数据的权限。

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


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.
      }
    }
  }
}

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.