像这样的Firebase安全规则?

问题描述 投票:0回答:1

我有一个收藏集,可以说它叫做rooms。在房间中,我有它的名称,其哈希密码,“成员”,子集合,看起来像这样:

rooms: {
  room1Uid: {
    name: "room name",
    password: "hashed password",
    members: {
      member1Uid: { joindate: "timestamp"},
      member2Uid: { joindate: "timestamp"},
      ...
    },
    resource1: {
      something: "...",
    },
    resource2: {
      something: "...",
    }
  },

  room2Uid: {...}
}

我希望只有经过身份验证的用户才能在roomUid下读写成员列表中包含的所有内容。

因此,例如request.auth.uid == member1Uid可以从room1Uid下面读取resource1

firebase google-cloud-firestore firebase-authentication firebase-security
1个回答
0
投票

使用exists(),下面给出示例代码

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    match /rooms/room1Uid/{document=**} {

      allow read, write: if exists(/databases/$(database)/documents/rooms/room1Uid/members/$(request.auth.uid))

    }
  }
}

尝试一下,让我知道,它是否起作用

© www.soinside.com 2019 - 2024. All rights reserved.