我创建了一个聊天应用程序。结构如下:
聊天室 ->(子集合)消息 ->
在聊天室和消息文档中,有一个称为参与者的数组。
The security rules are as follows:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Chatrooms
match /chatrooms/{chatroomId} {
allow read, update: if request.auth.uid in resource.data.participants;
// Messages
match /chatrooms/{chatroomId}/messages/{messageId} {
allow read, write: if request.auth.uid in resource.data.participants;
}
}
// Users
match /users/{userId} {
allow read: if request.auth != null;
allow update: if request.auth.uid == userId;
}
}
}
一切正常,但我无法阅读消息。我不明白。
聊天室和消息中存在相同的参与者。但为什么我读不到呢?请救救我。
两者具有相同的字段。这样做的部分原因是安全规则。但这不起作用...
在每条消息中,都会输入参与者,就像输入日期一样。
只需删除多余的规则并将用户规则设置为
allow read,write: if true;