Моя база данных firstore с коллекциями и документами структурирована следующим образом:
- Пользователи -> События -> Действия -> Потоки
Я хочу, чтобы все могличитать документ внутри коллекции Events и ее подколлекционного документа (actions + Streams), если у документа Collectionsiton Events есть свойство, например, видимость строки "public"
То есть, если документ в коллекции Events имеет видимость поляпублично любой пользователь должен иметь возможность прочитать этот документ и его подколлекции.
До сих пор мне удавалось сделать доступным для чтения только документ в коллекции событий с помощью:
service cloud.firestore {
match /databases/{database}/documents {
// Make sure the uid of the requesting user matches name of the user
// document. The wildcard expression {userId} makes the userId variable
// available in rules.
match /users/{userID} {
allow read, update, delete: if request.auth.uid == userID;
allow create: if request.auth.uid != null;
match /events/{eventID} {
allow read: if resource.data.visibility == 'public';
allow read, write, create, update, delete: if request.auth.uid == userID;
match /activities/{activitytID} {
allow read, write, create, update, delete: if request.auth.uid == userID;
match /streams/{streamID} {
allow read, write, create, update, delete: if request.auth.uid == userID;
}
}
}
}
}
}
Как сделать, чтобы видимость одного документа событий была общедоступной, а также вложенных коллекций действийа потоки тоже будут читабельными?