как я могу запросить документ на две вложенные коллекции в глубине родительской коллекции.
что-то вроде этого дает мне ошибку
Firestore.instance
.collection('col')
.document(docId)
.collection('anotherCol')
.document(anotherDocId)
.collection('yetAnotherCol')
.snapshots()
Это, однако, работает
Firestore.instance
.collection('col')
.document(docId)
.collection('anotherCol')
.snapshots()
Почему первый не работает?
Редактировать Дополнительная информация
Так что на самом деле он не выдает ошибку самого запроса, потому что он не возвращает данные, ошибка возникла из-за попытки прочитать содержимое результата.
Чтобы объяснить это: я выполняю это в StreamBuilder следующим образом:
return StreamBuilder(
stream: Firestore.instance
.collection('col')
.document(docId)
.collection('anotherCol')
.document((anotherDocId)
.collection('yetAnotherCol')
.snapshots(),
builder: (context, snapshot) {
print('group length: ${snapshot.data.documents.length}');
....
},
);
Таким образом, приведенный выше поток возвращает длина 0, даже если в базе данных есть два документа в конце коллекции.
Еще одна вещь, которую я понял, это то, что я не могу передать потоковый код AnotherDocId, т.е. я не могу прочитать содержимое. Я могу получить его идентификатор с помощью snapshot.data.documentID
или прочитать его содержимое, если сделаю запрос к коллекции, в данном случае «anotherCol», а затем пропущу ее по al oop - что является ожидаемым поведением. Итак, еще раз, вещи после второй коллекции в запросе не работают, как я надеялся.