Firebase - 创建两层用户

时间:2016-04-20 20:10:25

标签: firebase firebase-security firebase-realtime-database

我尝试使用Firebase作为公司情况的后端,在这种情况下,客户需要访问权限仅限于他们创建的内容;和需要能够查看所有数据的员工。这可能在Firebase中。我不能立即看到如何创建这样的规则,比如说,我有一系列员工的火力队员。

2 个答案:

答案 0 :(得分:3)

是的,这绝对可以在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只能访问“看马,没有手”,而zoran和uid_2(管理员)可以访问任何节点。

这可能会被简化,但它证明了这个概念。

答案 1 :(得分:1)

Firebase文档中有一些recipes其中一个显示了role based security实施的具体示例