Код: Выделить всё
{
members: ['abc','def'] // 2 element list of member UIDs
// some other chat metadata
}
Код: Выделить всё
function authed() {
return request.auth != null;
}
match /chats/{chatId} {
allow create: if authed()
&& request.resource.data.members is list
&& request.resource.data.members.size() == 2
&& request.auth.uid in request.resource.data.members;
allow read, update: if authed()
&& resource.data.members is list
&& request.auth.uid in resource.data.members;
allow list: if authed();
Код: Выделить всё
allow list: if authed();Код: Выделить всё
const q = query(
chatsRef,
where(MEMBERS_PROPERTY, 'array-contains', userId),
orderBy(LAST_MESSAGE_AT_PROPERTY, 'desc'),
limit(limitCount)
);
Из того, что я прочитал в этом последнем предложении, я не могу проверить предложениеwhere фактического запроса и убедиться, что userId соответствует request.auth.uid, и что правило чтения, которое применяется к каждому отдельному сопоставленному документу должен запрещать чтение чатов других пользователей, но, похоже, у меня этого не происходит.
Может ли кто-нибудь помочь мне сказать мне, что я не так сделал в своем правиле?
Подробнее здесь: https://stackoverflow.com/questions/798 ... members-of
Мобильная версия