我有一个数据库:
-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,该怎么办
答案 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