Это не работает, потому что правила безопасности не являются фильтрами . (Обязательно прочитайте документы по этой ссылке.) Также читайте подробнее здесь .
Когда вы выполняете запрос к коллекции (ни один документ не получает), фильтры в запросе должны абсолютно соответствовать требованиям правил, прежде чем станет известно содержание каких-либо документов. Правила безопасности не удаляют отдельные документы из результатов. В этом отношении запросы Firestore - это «все или ничего» - либо известно, что все запрошенные документы совпадают заранее, либо весь запрос завершается неудачей.
То, что у вас сейчас есть, предполагает, что каждый идентификатор документа должен быть прочитайте и по отдельности сравните со списком организаций, чтобы определить, какие из них следует вернуть. Поскольку правила не будут выполнять эту фильтрацию, он просто просто полностью отклонит запрос.
Вместо этого вам, вероятно, следует просто сделать один get () для каждого идентификатора организации в утверждениях пользователя. Определенно можно прочитать пользовательские утверждения в клиентском приложении.