首页 > 解决方案 > 如何只允许特定用户在 Firebase 中创建新用户?

问题描述

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

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

标签: node.jsfirebasefirebase-realtime-databasefirebase-authenticationfirebase-security

解决方案


您可以执行以下操作:

首先,在您的数据库中创建一个admins节点,您可以将 admin/manager 用户及其 userId 添加到该节点,如下所示:

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

其次,设置一些安全规则如下,

{
  "rules": {

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

       .....

  }
}

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


推荐阅读