Да, это действительно типичный подход. Дублируйте данные, которые вы хотите анонимно доступными, в отдельную коллекцию и предоставьте там более широкие ограничения доступа.
В правилах для этой коллекции адресов электронной почты вы обычно используете гранулярные правила , которые позволяют читать каждый конкретный c документ, но запретить перечисление всех документов. Что-то вроде:
match /emails/{email} {
// Applies to single document read requests
allow get: if <condition>;
// Applies to queries and collection read requests
allow list: if false;
}
Это означает, что как только пользователь набрал указанный c адрес электронной почты, вы можете проверить, существует ли документ для этого адреса электронной почты. Но они не могут просто получить все документы из коллекции, чтобы очистить вашу базу пользователей.