Как выполнять запросы через несколько документов в коллекции (Firestore / Flutter)

#firebase #flutter #google-cloud-firestore

#firebase #flutter #google-облако-firestore

Вопрос:

У меня есть функция для получения пользовательских задач, я хочу изменить ее, чтобы получать все пользовательские задачи. Итак, что я хочу сделать, это запустить мой запрос по всем документам в «tasksRef», но .doc() принимает только один параметр за раз

Ниже приведен код, который я использую для получения пользовательских задач:-

 getTasks() async {
  QuerySnapshot snapshot = await tasksRef 
    .doc(currentUser.id)
    .collection('userTasks')
    .get();
}
 

Есть ли какой-нибудь способ сделать это?

Ответ №1:

Если вы хотите выполнить запрос по всем userTasks коллекциям, вы можете использовать запрос группы коллекций:

 getTasks() async {
  QuerySnapshot snapshot = await FirebaseFirestore.instance 
    .collectionGroup('userTasks')
    .get();
}
 

Имейте в виду, что это запрашивает все задачи для всех пользователей, поэтому обычно требуется добавить некоторые условия к операции чтения, чтобы ограничить количество результатов тем, что может обрабатывать ваше приложение.