Firebase实时数据库规则

时间:2020-10-15 08:42:13

标签: firebase firebase-realtime-database firebase-security

我有一个数据库:

-users

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

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

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

我在安全规则方面遇到麻烦。据我了解,具有我的数据库名称的任何其他人都可以编辑数据库。所以我在文档中找到了一个例子

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

但是我有一个麻烦:如果用户在注册时指示某个uid,他只能编辑该uid,该怎么办

1 个答案:

答案 0 :(得分:0)

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

如果您需要将新用户的uid广告添加到数据库中的Moder用户帐户,则可能更容易使用firebase函数,可以将函数设置为侦听数据库路径,并在新wuser出现时从中获取数据他,并将他的uid写入“ UserUid#2-> users-> UserUid#1:true”。

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

在数据库中,您可以以管理员优先级进行读写,因此您无需在规则集中进行处理。

如果您确实需要使用规则集执行此操作,那么可能会更容易地对json进行一些基础调整,为嵌套数据编写规则会更困难。

您可以在这里阅读有关内容:https://firebase.google.com/docs/database/android/structure-data