如何仅允许特定用户在Firebase中创建新用户?

时间:2018-09-18 09:40:46

标签: node.js firebase firebase-realtime-database firebase-authentication firebase-security-rules

在Firebase实时数据库中,有很多关于限制对特定用户的读写访问的帖子和讨论。但是,我无法找到一种方法来将新用户的创建限制为仅特定用户/管理员。

我的应用程序由一名经理和一名雇员组成。只有管​​理者应该能够将新用户(员工)添加到数据库中,并且可以访问员工无法访问的特定数据。据我了解,Firebase提供的API意味着任何客户端都可以创建新用户。
有人可以指导我如何实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

首先,在数据库中创建一个admins节点,向其添加具有用户ID的admin / manager用户,如下所示:

- admins
    - Br8kiG5....
- users
    -  Abcd88676....
      - ....
    -  JHgU76hgh....
      - ....

第二,按如下所示设置一些安全规则,

{
  "rules": {

      "users": {
            ".write": "auth != null && root.child('admins').hasChild(auth.uid)",
            ".read": .....
            ".indexOn": .....
      },

       .....

  }
}

第三,在您的应用中实施Firebase身份验证,只有admins数据库节点下列出的用户才能在users节点下进行写入。