【问题标题】:How to structure firebase data and assign rules如何构建 Firebase 数据并分配规则
【发布时间】:2016-10-14 01:32:24
【问题描述】:

我想要的是一个类似于这个规则结构的数据结构。我似乎无法做到这一点,因为添加新记录会为该记录生成一个新的随机令牌。基本上,用户应该能够在 /stores 上运行查询并查看所有 uid 等于当前经过身份验证的用户的商店。因此,存储下会有多个具有相同 uid 的记录。我可能完全错了,所以我的问题是如何创建一个结构,让登录的用户可以看到属于他们的记录。

{
    "rules": {
        "users": {
            "$uid": {
                ".read": true,
                    ".write": "$uid === auth.uid"
            } 
        },
        "stores": {
            "$uid": {
                ".read": "$uid === auth.uid",
                ".write": "$uid === auth.uid",
                "$storeId": {
                }
            }
            }
    }
}

【问题讨论】:

    标签: firebase firebase-security


    【解决方案1】:

    请为我们提供更多内容。通常,firebase 中的关系需要一个额外的键:值对。所以你最好这样做:

    用户1

    记录1:真

    记录2:真

    记录3:假

    用户2

    记录1:假

    记录2:假

    record3: 真

    我发现这篇文章很有帮助:https://www.airpair.com/firebase/posts/structuring-your-firebase-data

    【讨论】:

    • 如果您查看在多对多部分中引用的链接。如何只允许属于该组的用户访问该组中的数据?因此,如果我在 /groups 下进行搜索,它只会返回用户所在的组和数据。
    • 您可以将关系存储在“用户”或“商店”下,但我不建议您将其存储在两者下。链接中的示例显示了这一点 - 使用用户对象并列出特定组,每个组都带有真或假。您的问题使我认为您可能一次尝试做太多事情,而 Firebase 的设置是为了速度而不是关系。对于您的具体问题:组(或商店)将为该用户设置为“true”的所有组。获取每个商店的详细信息列表需要使用名称或 ID 额外调用 firebase。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多