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

实时数据库的firebase规则

锺离珂
2023-03-14

我有一个数据库:

-users

--UserUid#1
---name:alex
---isUser:true
---isModer:false

--UserUid#2
---name:valder
---isUser:false
---isModer:true
---users
----UserUid#1:true

当用户(isUser:true)在应用程序中注册时,他会填充另一个用户uid(该用户uid具有属性isModer:true)并将自己的uid添加到他的个人资料中(UserUid#2-

我不懂安全规则。据我所知,任何其他拥有我的数据库名称的人都可以编辑数据库。所以我在文档中找到了一个例子

"rules": {
    "some_path": {
      "$uid": {
        ".read": true,
        // or ".read": "auth.uid != null" for only authenticated users
        ".write": "auth.uid == $uid"
      }
    }
  }

但是我有一个问题:如果用户在注册一个uid时表明他可以编辑这个uid,该怎么办


共有1个答案

太叔鹏云
2023-03-14

我不确定我是否正确理解你的问题:

如果您需要将新用户的uid添加到数据库中的Moder用户帐户中,那么可能更容易使用firebase函数,您可以将函数设置为侦听数据库路径,当新wuser出现时,从他那里获取数据,并将他的uid写入“UserUid#2”-

Firebase的一些官方视频:https://www.youtube.com/watch?v=Bdm7QNwSHOg

从数据库中,您可以使用管理员优先级进行写和读操作,所以不需要在规则集中处理这个问题。

如果您真的需要使用规则集来实现这一点,那么可能更容易重新设置json的基础,为嵌套数据编写规则则更难。

你可以在这里读到:https://firebase.google.com/docs/database/android/structure-data

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

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

  • 如果我在公共模式下使用Firebase实时数据库发布我的Android应用程序会怎么样,因为我不需要任何身份验证。它说 公共访问使您的数据库对任何人开放,即使是不使用您的应用的人,因此请务必在设置身份验证时再次限制您的数据库。 我不清楚,如果他们的应用程序没有连接到我的数据库,而且他们也没有firebase帐户的登录密码,那么他们怎么能访问我的数据库。 提前发送Thx

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

  • 我正在尝试为我的Firebase实时数据库设置规则,但我不明白为什么它们不起作用。下面是数据顶部的样子: 假设我希望允许用户读取其用户名与数据中的name字段匹配的数据。我以为这样的事情会奏效 不幸的是,这对我不起作用。为了学习,我甚至试过这个 或者甚至 这到底是怎么回事

  • 我创建了一个应用程序,它使用Firebase实时数据库。我对安全规则有一个很大的问题。我的用户不需要登录使用应用程序,他们可以发送数据到数据库,无需任何身份验证。例如:这是一个简单的游戏,他们可以互相玩,然后他们可以保存分数。我想创建一个安全的数据库,但是任何人都可以写