Firebase - 创建两层用户
Firebase - creating two tiers of users
我正在尝试将 Firebase 用作公司情况的后端,在这种情况下,客户需要访问的权限仅限于他们创建的内容;以及需要查看所有数据的员工。这在 Firebase 中可能吗?如果我有一组员工的 firebase uId,我无法立即看到如何创建这样的规则。
Firebase 文档有一些 recipes one of them shows a specific example of role based security 实现
是的,这在 Firebase 中绝对可行。
给定一个简单的 Firebase 结构:
users
uid_0
name: "Rupert"
uid_1
name: "Buffy"
uid_2
name: "Zoran"
admins
uid_2: true
data
uid_0: "something interesting"
uid_1: "look ma, no hands"
uid_2: "Beam me up"
和规则
"data": {
"$uid": {
".read": "auth != null && ( $uid == auth.uid || root.child('admins').child(auth.uid).exists() )"
".write": "auth != null && ( $uid == auth.uid || root.child('admins').child(auth.uid).exists() )"
}
}
此规则将确保用户是
1) authenticated and
2) the node they are accessing has their uid as a key
or
their uid exists in the admins node.
所以 uid_1 的 Buffy 只能访问 "look ma, no hands" 而 uid_2 的 Zoran(管理员)可以访问任何节点。
这可能可以简化,但它演示了这个概念。
我正在尝试将 Firebase 用作公司情况的后端,在这种情况下,客户需要访问的权限仅限于他们创建的内容;以及需要查看所有数据的员工。这在 Firebase 中可能吗?如果我有一组员工的 firebase uId,我无法立即看到如何创建这样的规则。
Firebase 文档有一些 recipes one of them shows a specific example of role based security 实现
是的,这在 Firebase 中绝对可行。
给定一个简单的 Firebase 结构:
users
uid_0
name: "Rupert"
uid_1
name: "Buffy"
uid_2
name: "Zoran"
admins
uid_2: true
data
uid_0: "something interesting"
uid_1: "look ma, no hands"
uid_2: "Beam me up"
和规则
"data": {
"$uid": {
".read": "auth != null && ( $uid == auth.uid || root.child('admins').child(auth.uid).exists() )"
".write": "auth != null && ( $uid == auth.uid || root.child('admins').child(auth.uid).exists() )"
}
}
此规则将确保用户是
1) authenticated and
2) the node they are accessing has their uid as a key
or
their uid exists in the admins node.
所以 uid_1 的 Buffy 只能访问 "look ma, no hands" 而 uid_2 的 Zoran(管理员)可以访问任何节点。
这可能可以简化,但它演示了这个概念。