Рассмотрим пример из документации Firebase.
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city} {
allow read, write: if <condition>;
// Explicitly define rules for the 'landmarks' subcollection
match /landmarks/{landmark} {
allow read, write: if <condition>;
}
}
}
}
Здесь подколлекция ориентир ориентиры имеет явные правила безопасности. Предположим, у меня есть другие подколлекции под города. Если правила, которые я хочу для них, такие же, как и для города, нужно ли мне определять их как отдельные блоки, как ориентир ориентиры? Или я могу изменить /cities/{city} на /cities/{city=**}?
Какой подход будет лучшим? Спасибо за уделенное время.
Любая ссылка на это или это неявно вытекает из руководств: P?

судя по вашему вопросу, я думаю, что у вас есть две подколлекции: ориентиры и столицы. Поэтому вам нужно другое правило для подколлекции «ориентиры». Чтобы добиться этого, вы должны явно определить правило безопасности каждой подколлекции.
ваше правило должно быть чем-то вроде этого,
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city} {
allow read, write: if <condition>;
// Explicitly define rules for the 'landmarks' subcollection
match /landmarks/{landmark} {
allow read, write: if <condition>;
}
// Explicitly define rules for the 'capital' subcollection
match /capital/{capitals} {
allow read, write: if <condition>;
}
}
}
}
если вы напишете такое правило
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city=**} {
allow read, write;
}
}
}
это правило будет применяться для каждой подколлекции в коллекции городов, даже если вы явно пишете правило для какой-то подколлекции.
Отредактируйте свой ответ, потому что вы сказали две подколлекции «города и достопримечательности». Это должны быть «столицы и достопримечательности», как в вашем примере. Тогда примем как ответ, поскольку он кажется правильным.
да, вы должны определить явно