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(管理员)可以访问任何节点。

这可能可以简化,但它演示了这个概念。