我一直在尝试为我的 Firebase 数据库创建一些规则,但似乎我遇到了障碍,或者(希望)只是有些地方我没有得到。
我的数据结构如下所示:
units
<custom user id eg. 1234>
unit1
unit2
...
users
<custom user id eg. 1234>
name
email
phone
...
node3
<custom user id eg. 1234>
object1
object2
...
我想做的是创建规则,只允许 ID 为 1234 的用户(这与 Firebase 身份验证中用户的 uid 明显不同)访问其节点。
有什么办法可以实现这个目标吗?
最佳答案
我不确定您为什么不使用 Firebase 身份验证用户 UID 而不是自定义 UID,但没关系:)
如果您在数据库中的某个位置在 Firebase 身份验证 UID 和您的自定义 UID 之间进行了映射(例如,您已在映射/1234/authUID 中保存了用户 1234 的 Firebase 身份验证 UID),那么您可以编写如下数据库规则:
"users": {
"$customUserUid": {
".write": "root.child('mapping').child($customUserUid).child('authUID').val() === auth.uid"
}
}
关于节点上具有自定义 ID 的 Firebase 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53520386/