我有一个Streambuilder
将 Firebase Firestore 快照作为流的,我想添加initalData
到Streambuilder
.
我怎样才能传递initalData
给Streambuilder
?
代码:
StreamBuilder(
stream: FirebaseFirestore.instance
.collection("events")
.snapshots(),
builder: (BuildContext ctx, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData || snapshot.data.docs.isEmpty) {
return NoDataRelatedLocation();
}
if (snapshot.hasError) {
return Text(snapshot.error.toString());
} else {
return new RelatedLocationListing(
relatedLocationList: snapshot.data.docs,
);
}
},
),
您可以添加initialData
到StreamBuilder
:
StreamBuilder(
initialData: ..... // <~~~ add it here.
stream: ...
builder: ...
您只需要确保initialData
匹配来自流的数据类型。由于QuerySnapshot
是 Firebase 特定类型,您应该将您的流映射到您可以创建并且您知道的数据类型。
这是一个伪代码:
initialData: [MyDataType()],
stream: FirebaseFirestore.instance
.collection("events")
.snapshots().map((snapshot) => MyDataType.fromMap(snapshot.doc));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句