我正在使用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;
但无济于事。
有人可以帮我解决这个问题吗?谢谢!