Невозможно запросить подколлекцию из StreamBuilder (флаттер) - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь запросить подколлекцию из StreamBuilder, но запрос возвращает ноль документов, хотя в подколлекции есть документ. Запрос родительской коллекции возвращает правильное количество документов, и идентификатор документа, переданный во вложенную коллекцию, был проверен. Чего мне не хватает?

StreamBuilder<QuerySnapshot>(
                stream: _firestore
                    .collection('books')
                    .document(documentID)
                    .collection('enquiries')
                    .snapshots(),
                builder: (context, snapshot) {
                  if (!snapshot.hasData) {
                    return Text('You have not received any enquiries yet!');
                  } else {
                    final numberOfDocs = snapshot.data.documents.length;
                    print(numberOfDocs); // HELP HERE! returns 0, although a document exists in the subcollection
                    print(documentID);   // returns the expected document ID
                    ...

Подколлекция Firestore:

documentID передан методу .document ()

1 Ответ

1 голос
/ 28 апреля 2020

Это очень запутанно для начинающих в Firestore, но из предоставленного вами скриншота кажется, что у вас на самом деле нет никаких документов во вложенной коллекции.

Когда имя идентификатора документа выделено курсивом, это означает, что этот документ имеет вложенные коллекции, но сам документ не содержит.

Это происходит, когда вы создаете вложенную коллекцию документа, а затем удаляете документ позже.

Обязательно создайте несколько документов в книгах / kOhVCohNlbQWkGem06RF / запросы, и вы должны быть хороши для go!

...