Групповые запросы Scoped Collection - PullRequest
2 голосов
/ 16 мая 2019

Рассмотрим мультитенантную базу данных пожарного магазина:

/customers/{customerId}/users/{userId}/rosters/{rosterId}

Поскольку кажется, что collectionGroup распространяется на всю базу данных. Итак, в узле:

let rosters = db.collectionGroup('rosters').where('isActive', '==', 'true');

вернет совпадения для всех клиентов. Для клиентской стороны это может быть ограничено правилами безопасности.

Как это можно определить в области доступа администратора?

1 Ответ

0 голосов
/ 16 мая 2019

Запросы группы собраний применяются ко всем собраниям с указанным именем.В настоящее время нет возможности расширить их рамки.Долгосрочный план состоит в том, чтобы позволить охватить пути, но нет никакой временной шкалы, когда это может быть доступно, и это определенно не будет в ближайшем будущем.

Это означает, что вам либо нужно будетвозможность уменьшить область действия с помощью имени коллекции (например, если у вас есть несколько типов списков, вы можете переименовать коллекции в users в user_rosters, чтобы можно было ограничить запрос группы-коллекции только пользователемсписки), или через дополнительные условия поля в вашем запросе.

Хотя в последнем случае может показаться, что вы возвращаетесь к глобальным коллекциям, на самом деле это все же лучше, поскольку подколлекции действительно обеспечивают лучшую write пропускную способность.

...