我正在尝试使用Firestore作为数据库使用Flutter构建应用程序。我在查找文档的子集合时遇到了一些问题。我在恢复数据时遇到了麻烦,在列表功能的末尾,我需要她等待返回之前的listCanecas,我试图在多个地方进行等待,但是没有用,我正在使用MobX:>
@override
Stream<List<Botijao>> list() {
listCanecas = [];
return firestore
.doc(this.doc.path)
.collection("botijoes")
.snapshots()
.map((query) {
return query.docs.map((doc) {
doc.reference.collection('canecas').snapshots().listen((getCanecas));
return Botijao.fromMap(doc, listCanecas);
}).toList();
});
}
getCanecas(QuerySnapshot snapshot) async {
for (var doc in snapshot.docs) {
getRacks(doc).listen((racks) {
listCanecas.add(Caneca.fromMap(doc.reference, racks));
});
}
}
Stream<List<Rack>> getRacks(DocumentSnapshot doc) {
return firestore
.doc(doc.reference.path)
.collection("racks")
.snapshots()
.map((query) {
return query.docs.map((docR) {
return Rack.fromMap(docR);
}).toList();
});
}