Flutter 给 Streambuilder initalData
Flutter give Streambuilder initalData
我有一个 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));
我有一个 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));