在节点上具有自定义ID的Firebase规则

时间:2018-11-28 13:18:59

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

我一直在尝试为我的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不同)的用户访问其节点。

有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

我不确定您为什么不使用Firebase身份验证用户UID而不是自定义UID,但可以:)

如果您在数据库中某个地方在Firebase身份验证UID和自定义UID之间进行了映射(例如,您已将用户1234的Firebase Auth UID保存在mapping / 1234 / authUID中),则可以这样编写数据库规则:

"users": {
    "$customUserUid": {
        ".write": "root.child('mapping').child($customUserUid).child('authUID').val() === auth.uid"
    }
}