В настоящее время нет способа, используя правила безопасности, проверить, используется ли поле в запросе. Единственное, что вы можете сделать, это убедиться, что поле документа используется в качестве фильтра, используя только те значения, которые вы разрешаете.
Вместо этого рассмотрите возможность дублирования достаточного количества данных в другой коллекции, организованной так:
user-posts (collection)
{uid} (document using UID as document ID)
posts (subcollection)
{postId} (documents using post ID as document ID)
Это потребует от клиента вызова UID для запроса, чтобы получить все сообщения, связанные с этим пользователем. Вы можете хранить столько информации о почтовых документах, сколько захотите, для удовлетворения запроса.
Подобные дубликаты данных распространены в базах данных NoSQL. Возможно, вы даже захотите сделать это своей новой структурой по умолчанию, если вы не хотите, чтобы ваши пользователи запрашивали все сообщения в любой момент. Обратите внимание, что запрос группы сбора с именем подколлекции "posts" будет по-прежнему запрашивать все сообщения для всех пользователей, поэтому вам нужно будет убедиться, что ваши правила безопасности настроены , чтобыэто включается только тогда, когда вы позволяете этому произойти.
Также обратите внимание, что UID обычно не скрыты от пользователей, особенно если ваш веб-сайт является совместным по своей природе, и вы объединяете данные нескольких пользователей на одной странице.