У меня есть простое приложение чата в Cloud Firestore со следующим правилом безопасности, которое позволяет пользователям отправлять сообщения в чат-комнату только в том случае, если они «присоединились» к комнате в самом приложении:
match /hangouts/{hangout}/messages/{message} {
allow create, write, update, read: if exists(/databases/$(database)/documents/users/{userId}/hangout/{hangout});
}
Если у пользователя есть HangoutID в своей коллекции в Firestore, ему следует разрешить отправить сообщение этому HangoutID. Тем не менее, я все еще получаю сообщения об ошибках:
Write at hangouts/ChIJPRVm2R7H54kRKLP2ttsuUko/messages/17225E70-B708-4033-AE5A-D0CBBD1BC69F failed: Missing or insufficient permissions.
У меня также есть 2 других правила, связанных с видеовстречами. Возможно ли, что они мешают?
match /hangouts/{hangout} {
allow read, update, write, create: if request.auth.uid != null;
}
match /hangouts/{hangout}/members/{userId} {
allow read: if request.auth.uid != null;
allow create, update, write, delete: if request.auth.uid == userId;
}
Во-первых, люди могут создавать и просматривать видеовстречи в чате, а во-вторых, разрешать людям присоединяться к ним.
Что я делаю не так? Я немного новичок в этой концепции.
Спасибо !!