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

标签 firebase firebase-realtime-database firebase-security

我一直在尝试为我的 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/

相关文章:

java - OperationException 导致错误请求错误

swift - 我可以在 firebase 上手动验证电子邮件/密码帐户吗?

firebase - 使用 angularfire2 在 firebase 数据库中获取时间

firebase - Firestore 安全规则使用对另一个文档的引用

firebase - 在 Firebase Firestore 中,有没有办法将信息传递给不属于路径的安全规则?

firebase - Flutter Firebase 实时 once().then() 重新运行时不会更新

javascript - 如何更改 Firebase 父节点的名称以启用规则

javascript - Firebase 推送 1 个输入值而不是 Span?

node.js - Firebase RefBuilder.onOperation<T> 方法是什么?

firebase - 调试 Cloud Firestore 的安全规则