Firestore JS-应用规则查询数组中的成员

时间:2018-09-20 14:42:46

标签: firebase google-cloud-firestore

我正在使用Firestore创建聊天室应用程序。我的数据结构如下

chatroomCollection:
    chatroom1:
        users:[email1, email2],
        messagesCollection:
            ...etc.

我想查询我所在的所有聊天室,目前我正在使用以下内容:

dbRef.collection('chatroomCollection').where('users', 'array-contains', myEmail).get().then((querySnapshot) =>{
    //process here
});

在没有Firestore规则的情况下完美运行。

我现在只想将这种查询限制为聊天室的成员。我正在尝试使用我认为是匹配的规则来实现这一目标:

match /chatroomCollection/{chatroomId} {
  allow read: if request.auth.token.email in resource.data.users;
}

但这不会授予所需的权限。我也尝试过更换

resource.data.users;

使用

request.resource.data.users;

但无济于事。

有人可以帮我解决这个问题吗?谢谢!

0 个答案:

没有答案