从firebase/Flatter返回对象列表
我在Firebase有一个收藏。我返回一个包含以下代码的流:从firebase/Flatter返回对象列表,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我在Firebase有一个收藏。我返回一个包含以下代码的流: Stream<List<T>> collectionStream<T>({ @required String path, @required T builder(Map<String, dynamic> data), }) { final reference = Firestore.instance.collection(path); final sn
Stream<List<T>> collectionStream<T>({
@required String path,
@required T builder(Map<String, dynamic> data),
}) {
final reference = Firestore.instance.collection(path);
final snapshots = reference.snapshots();
return snapshots.map((snapshot) =>
snapshot.documents.map((snapshot) => builder(snapshot.data)).toList());
}
}
流采集流({
@必需的字符串路径,
@所需的T生成器(地图数据),
}) {
最终引用=Firestore.instance.collection(路径);
最终快照=reference.snapshots();
返回快照。映射((快照)=>
snapshot.documents.map((snapshot)=>builder(snapshot.data)).toList();
}
}
如何返回
列表
。我不需要小溪。我需要一个对象列表。您可以使用从collectionStream返回的流的.single getter方法来获取未来:
Stream<List<Bookmark>> bookmarkStream = collectionStream<Bookmark>(...);
streambookmarkstream=collectionStream(…);
List singleList=wait bookmarkStream.single;
而不是
final snapshots = reference.snapshots();
你应该这样做
final _docs = reference.getDocuments();
这将返回一个QuerySnapshot,其中包含\u docs.documents
中的列表
然后,您可以迭代该列表并获取将其映射到类所需的数据
final _docs = reference.getDocuments();