Как получить документы из firebase firestore в соответствии с определенным значением в этих документах в flutter?

# #firebase #flutter #google-cloud-firestore

Вопрос:

У меня есть следующая структура в firestore, введите описание изображения здесьи я хочу получить документы серии, которые имеют одну и ту же категорию или жанр (10 документов одновременно).

 EX: 10 series documents of category Mystery
 

Я знаю, что это делается с использованием методов where() и limit() , но я не знаю, как получить доступ к объектам в categories array , особенно если у них нет имен.

Ответ №1:

В настоящее время вы не можете искать вложенные элементы во вложенных списках, однако вы можете выполнить поиск точного объекта в списке, и в вашем случае это a Map<String, String> .

Итак, используйте это, что можетдолжно сработать:

 .where('categories', arrayContains: {"ar_title": غموض, "en_title":"Mystery"})
 

Комментарии:

1. должен ли это быть точный объект? Я имею в виду, не могу ли я просто передать «en_title»??

2. К сожалению, нет, потому что подумайте об этом с точки зрения Firebase. в нем есть список категорий, в каждом индексе, внутри него, есть en_title . Массив содержит только просмотры на самом первом уровне категорий, в индексах0, индекс1..и т. Д., Но на самом деле вам нужно, чтобы он заглянул в каждый индекс , если он содержит en_title , а затем en_title сопоставил Mystery его . И в настоящее время они этого не делают.