Как получить список документов из вложенных коллекций, содержащих определенный идентификатор документа?

# #firebase #flutter #google-cloud-firestore

Вопрос:

Как мне получить список документов из вложенных коллекций «участники», содержащих определенный идентификатор документа?

результатом должен быть идентификатор документа ‘HPqr6X5flVC2DSugfb3A’, если коллекция «участники» содержит дочерний документ ‘tu50FK1uXxfeTmzdJFkBdg0q1b82’

Оформите скриншот базы данныхзаказ .

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

1. Не могли бы вы перефразировать свой вопрос? Из скриншота, что вы пытаетесь получить?

2. пролить больше света на ваш вопрос

3. это мой 1-й вопрос, пожалуйста, нажмите на ссылку с изображением

Ответ №1:

Вы можете использовать запрос группы коллекций для получения списка документов из группы коллекций (набора коллекций с одинаковым идентификатором) и сравнения идентификатора документа с идентификатором, который вы запрашиваете, с помощью FieldPath.documentId.

Вот образец:

 var id = 'f8ed8ddd-7e3d-4cdc-bc63-1fe5de5ef8e7';
var querySnapshot = await FirebaseFirestore.instance
  .collectionGroup("members")
  .where(FieldPath.documentId, isEqualTo: id)
  .get();
var documentList = querySnapshot.docs;
 

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

1. Спасибо за ваш ответ, но все равно ошибка. Мне нужно получить идентификатор документа в «wecare_group», где идентификатор документа в разделе «участники» содержит конкретный идентификатор документа. результатом должен быть идентификатор документа ‘HPqr6X5flVC2DSugfb3A’, если в разделе «участники» содержится идентификатор документа ‘tu50FK1uXxfeTmzdJFkBdg0q1b82’

2. [ОШИБКА:flutter/lib/ui/ui_dart_state.cc(199)] Необработанное исключение: [cloud_firestore/неизвестно] Произошла ошибка при анализе аргументов запроса, дополнительные сведения см. в собственных журналах. Пожалуйста, сообщите об этой проблеме. E/flutter (26596): #0 Запрос на метод.get (пакет:cloud_firestore_платформа_интерфейса/src/метод_канал/метод_канал_запроса.dart:108:7) E/flutter (26596): <асинхронная приостановка> E/flutter (26596): #1 _JsonQuery.get (пакет:cloud_firestore/src/запрос.dart:389:9) E/flutter (26596): <асинхронная подвеска><асинхронная подвеска>