firebase文档中的示例假定手动更新了firebase安全规则。如何以编程方式修改安全规则以支持实际的协作应用程序?在我正在考虑的用例中,要求用户能够邀请其他用户协作/共享选定的数据,并能够授予/撤销对协作者的访问权限。如何用火力基地完成这一任务?
发布于 2013-12-15 03:58:22
实际上,您不应该以编程方式更改您的安全规则。您应该将它们看作是代码,并且只在部署时对它们进行更改。
如果您试图更改用户实际允许的操作,则应该编写依赖于Firebase中数据的安全规则。
例如,假设您希望将对数据段的访问仅限于特定组中的用户。与其每次更改组成员资格时都修改安全规则,不如将组存储在Firebase中,并让您的安全规则在允许访问之前检查当前用户是否在该组中。
".read" : "root.child('groups').child($groupID).child(auth.userid).exists()"
这样,无论何时组成员身份发生变化,用户都将自动被授予访问他们应该看到的数据的权限。
对于一个更复杂的安全规则示例,请查看rules.json文件中的Firefeed。
发布于 2017-12-21 19:08:14
但是如何处理动态添加的数据集呢?
您可以通过使用子$
节点来实现这一点。看起来是这样的:
这是我的数据库
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.
}
}
}
}
希望这是你所要求的,希望这会有所帮助!
https://stackoverflow.com/questions/20590833
复制相似问题