Фильтр запросов FireStore на основе коллекции
У меня есть book
коллекция в пожарном магазине, по дизайну каждый документ имеет id
(скажем, это целочисленные идентификаторы, такие как 0, 1, 2..); Я хочу запросить коллекцию путем фильтрации случайной коллекции документов id
например, [2, 5, 23, 54], обратите внимание, что эти идентификаторы являются случайными, поэтому я не могу использовать фильтр диапазона как isGreaterThan
, Я хочу избежать запроса по одному разу для каждого отфильтрованного идентификатора, поскольку он может читать базу данных слишком много раз (что может быть дорогостоящим).
Я пытался использовать Firestore.instance.collection('book')where('id', array_contains:[ filtered id])
но это не работает с id
не поле для сбора
1 ответ
В настоящее время вы не можете сделать or
запросы в array_contains
Это определенно функция, которую хотят люди, и поэтому я рекомендую записать ваш запрос в службу поддержки. Однако, в то же время, поскольку ваши запросы не пересекаются, стоит просто выполнить отдельные запросы и объединить результаты в основной массив. Не уверен в вашем языке, поэтому не могу привести пример, он просто выполняет 4 запроса в вашем примере и заставляет их всех обновлять основной массив.