【问题标题】:Firebase (Firestore) security rules, limit access to object for specific usersFirebase(Firestore)安全规则,限制特定用户对对象的访问
【发布时间】:2020-03-25 20:54:13
【问题描述】:

我需要将存储在 Firestore 中的会议对象的访问权限限制为特定用户 ID(会议参与者)。

会议示例:

{
    name: "Topic 1";
    participantsIds : [
        "0YClg4mgljK8m16znDrW",
        "xFRCam5joc3nDW5jHWT5"
    ];
}

要从 Firestore 为特定参与者加载会议,我可以轻松地使用 where 查询和“array-contains”运算符。

如何编写 Firestore 安全规则以防止非会议参与者(不在参与者IDs 数组中)的用户读取?

是否有更好的方法来存储会议参与者并轻松查询和编写安全规则?

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-security


    【解决方案1】:

    Firestore 列表类型字段在安全规则中显示为 List 对象。您可以使用in 运算符来检查列表中是否存在元素。假设您使用 Firebase 身份验证来识别用户,这将只允许 participantsId 字段中列出的用户阅读文档:

    match /your-meetings-collection/{id} {
      allow read: if request.auth.uid in resource.data.participantsId
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多