Насколько я знаю, в настоящее время невозможно сопоставить имя частично коллекции (или документа).Хотя это звучит как интересный запрос о функции, поэтому я рекомендую подать запрос о функции .
. Между тем, единственное, о чем я могу думать, - это сопоставить все коллекции, а затем протестировать путь.через resource['__name__']
:
match /53829635/{document} {
match /{col}/{doc} {
allow read: if resource['__name__'][5].matches('ABC.*')
}
}
Выражение resource['__name__']
возвращает Path
, который может быть индексом в виде массива для получения сегментов пути.Он имеет форму /databases/(default)/documents/collection/document
, поэтому подколлекция имеет индекс 5. Поскольку это просто строка, мы можем использовать matches
для нее.В этом случае я разрешаю чтение из любого подколлекции, чье имя начинается с ABC
.
Обновление: получается, что вы также можете просто получить доступ к подстановочному знаку col
вместо того, чтобы смотреть вверх по пути,Так что это будет работать так же:
allow read: if col.matches('ABC.*')