当前位置: 首页 > 知识库问答 >
问题:

如何只允许一个管理员用户写Firebase数据库?

农波涛
2023-03-14

我正在尝试建立一个只有我可以编写的Firebase数据库。所以没有用户有权编写任何东西。但每个人都可以阅读它。

然而,我无法为它制定规则。我使用电子邮件/密码登录创建了一个管理员用户,我知道它的UID。假设我的UID是:dJrGShfgfd2

我尝试了这两种方法,但它们不允许我写入数据库。

{
  "rules": {
    "events": {
      ".read": true,
      ".write": "auth.uid === 'dJrGShfgfd2'"
    }
  }
}

.

{
  "rules": {
    "users": {
      "$user_id": {
        ".read" : true,
        ".write": "$user_id === 'dJrGShfgfd2'"
      }
    }
  }
}

那么,如何只允许一个具有特定UID的用户向数据库写入任何内容呢?

共有1个答案

齐招
2023-03-14

这应该可行:

{
  "rules": {
    ".read": true,
    ".write": "auth.uid === 'dJrGShfgfd2'"
  }
}

世界上的每个人都可以读取数据,但只有具有UIDdJrGShfgfd2(以及具有管理访问权限的进程)的用户才能写入数据

 类似资料:
  • 我最近移动主机,我不能得到管理员4.3.1,今天下载看到多个数据库。为什么它选择了那个我不知道。主机公司从原始主机上复制了我的所有数据。数据库是MySQL。 我运行管理员从一个目录,通过授权用户使用目录保护,工作正常。 AM仅显示6个数据库中的一个。对于所选的数据库,任何函数似乎都没有问题。所有数据库都有不同的密码。 phpMyAdmin通过cPanel查看所有数据库是否正常。 我确实按照某人的建

  • 上下文:我正在使用Firebase作为后端组装一个时间跟踪应用程序。我当前的节点结构在根节点上有时间条目和客户端,如下所示: > 时间输入 条目ID 用户ID 客户ID、时间、日期、描述等 客户 客户ID 名称、项目等 如果我只是根据用户添加和提取时间条目,那么这种结构可以很好地工作,但我想开始根据每个客户机组合报告。目前,这意味着为每个用户发出单独的HTTP请求,然后通过clientID进行过滤

  • 我目前正在努力让在不使用管理员用户的情况下在AzureSQL数据库上工作。以下脚本运行良好,完全符合预期,并在管理员用户执行时记录在案: 当以非管理员用户身份执行此操作时(已被授予选择、更新、删除、插入、更改、控制和管理数据库批量操作的权限),我会收到以下错误消息: 根据文档,拥有插入、更改和(最重要的)管理数据库批量操作的权限就足够了。但是,当检查数据库权限时(在中),我可以看到添加了以下行:

  • 我当前的Android应用程序使用Firebase实时数据库。 我正在与安全规则作斗争,因为我希望只允许单个用户写入数据,同时允许任何经过身份验证的用户读取数据。 我制定了这些规则,但不确定它们是否足够安全。。。 其中“XXXXXXXXXXXXXXXXXXXX”是我希望允许写入数据的指定用户。 用户的uid是常量值吗? 在测试新规则时,单击“模拟”按钮时,“验证”选项管理什么?

  • 我正在使用FireBase实时数据库来设置一个简单的CRUD应用程序。 我正在设置规则,以便只有登录的用户才能写入请求部分。我一定是误会了奥特。uid。 在请求中,我设置了,但我无法写入数据。 我错过了什么?

  • 问题内容: 我正在写以下命令 我怎样才能将此命令限制为仅管理员?我试着看,它说。我如何检查给定的用户是否是? 问题答案: 有两种方法:通过使用的角色白名单 或经许可使用 这两个装饰器都是Checks,如果它们失败,将引发您的一些子类供您选择处理。