我的 webapp 和 99% 的应用程序一样,在 db 中有一组用户。我可以在 /user/ 访问用户,因此我设置规则以允许每个用户仅访问其数据。
但我需要每个用户加入一个组
/user/34029380432
- name: realtebo
- group_id: 123
- isAdmin: true
/group/123
- a lot of shared data, all members can erad, only isAdmin can write
如何设置一个规则,只允许每个组的成员读取它,只有管理员成员才能写入组数据?!
当然,我可以在每个组和设置下,在每个组内,一个或多个管理员 id 交换边,movin 成员列表,作为数组。
但我无法编写 javascript 规则。
我认为你可以做的是在你的组对象中有一个消息和用户节点。您可以在安全规则上访问该数据节点的父对象,并通过使用 exists() 查看该用户是否是用户对象节点的成员
/group/123
- messages // a lot of shared data, all members can read, only isAdmin can write
- users // list of user uids that are added to this group
- admins // list of admin uids
"group": {
"$groupId": {
"messages": {
".read": "data.parent().child('users').child(auth.uid).exists()",
".write": "data.parent().child('admins').child(auth.uid).exists()"
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句