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

Firebase实时数据库规则允许单用户写访问

寇夜洛
2023-03-14

我当前的Android应用程序使用Firebase实时数据库。

我正在与安全规则作斗争,因为我希望只允许单个用户写入数据,同时允许任何经过身份验证的用户读取数据。

我制定了这些规则,但不确定它们是否足够安全。。。

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth.uid === 'xxxxxxxxxxxxxxxxxxxxxxx'"
  }
}

其中“XXXXXXXXXXXXXXXXXXXX”是我希望允许写入数据的指定用户。

用户的uid是常量值吗?

在测试新规则时,单击“模拟”按钮时,“验证”选项管理什么?

共有1个答案

姚正真
2023-03-14

一旦用户的UID生成,它将永远不会改变。因此,在安全规则中检查UID确实是一种常见的方法,以确保仅特定用户具有特定权限。对于初始(管理员类型)用户,我几乎在每个项目上都这样做。

 类似资料:
  • 我有一个关于firebase实时数据库规则的问题。 有人创建了一个帐户,该帐户在实时数据库中创建了一个路径: 结构很简单(密钥、用户ID和其他数据)。 这是我的规则: 但现在问题来了。如何允许用户写入此对象?每个拥有代码的人(请参阅BQUyhq)w3D)都可以写入对象id。如果没有代码,他们就无法写入对象id。 有可能发生这样的事吗?如果是的话,我该怎么做呢。

  • 我遇到的问题是,使用下面显示的以下Firebase规则,经过身份验证的用户可以成功写入数据库,但无法从中读取,因为我在控制台中获得了“拒绝权限”。当我将读取和写入设置为true(公共)时,读取和写入功能都正常工作。我从数据库中读取的代码也显示如下: 规则: 示例数据库: 以下是确切的错误:

  • 我尝试用规则返回用户聊天列表。所以我不知道对话的id。我尝试了几种方法,但都不起作用,因为你必须知道聊天id。 数据库: 规则: 但当我从react本机应用程序访问时。通过身份验证的用户无法访问聊天记录(uid:3Oi1atf8l2P4Vgsb8tZOGxpUg7q2) *读取失败:错误:权限被拒绝/Chats:客户端没有访问所需数据的权限。 规则: 查询:

  • 我使用以下规则检查只有“管理员”才能写入陷阱部分。 这个很好用。但是如果我把规则改为, 然后我得到了一个权限错误。W/SyncTree:侦听/traps失败:数据库错误:权限被拒绝。 我之所以改变结构,是因为我试图使用validate函数,但由于我无法通过第一个问题,我无法达到验证的程度。 我肯定这是一个新手理解错误,但在尝试了许多排列后,我在这方面进展甚微。您的协助将不胜感激。 更新201606

  • 我的应用程序集成了聊天功能,使用Firebase实时数据库存储聊天内容。最近,我收到了一封包含以下内容的电子邮件: [Firebase]你的实时数据库****有不安全的规则 我的应用程序使用服务器端身份验证,但没有集成Firebase Auten。所以,如果我将读/写规则设置为,则正常用户不能聊天。如何解决这个问题?谢谢!

  • 我对Firebase实时数据库规则有意见。我向。在中,我想在实时数据库中添加我自己的用户对象。我这样做是因为每个用户都有额外的电子邮件/密码信息。 我检查完之后 方法 它叫。但出于某种原因,会抛出此数据库错误: 根据我的理解,如果Firebase用户不是null,那么他已经登录,因此我的规则在Firebase中声明 将允许用户写入数据库。但是,当我将规则更改为和。 所以我的问题是:我做错了什么?我