像这样的Firebase安全规则?

像这样的Firebase安全规则?,firebase,google-cloud-firestore,firebase-authentication,firebase-security,Firebase,Google Cloud Firestore,Firebase Authentication,Firebase Security,我有一个收藏,比如说它叫房间。 在文件室中,我有它的名称,它的散列密码,“members”,子集合,看起来像这样: rooms: { room1Uid: { name: "room name", password: "hashed password", members: { member1Uid: { joindate: "timestamp"}, member2Uid: { joindate: "timestamp"}, ...

我有一个收藏,比如说它叫房间。 在文件室中,我有它的名称,它的散列密码,“members”,子集合,看起来像这样:

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

使用下面给出的示例代码


试试这个,让我知道,它是否工作

它是实时数据库吗?它是FireStore您使用的是哪种身份验证方法?(电子邮件和密码,匿名…)使用电子邮件和密码()登录以进行用户身份验证。但我想筛选可以访问文件室资源的用户。请检查答案
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))

    }
  }
}