firebase - Flutter 给 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));
推荐阅读
- r - R:在特定的行和列上循环自定义函数
- wix - util:RegistrySearch 变量可以与刻录中的 ExePackage 的 SourceFile 一起使用吗?
- excel - 自定义功能区按钮打开宏文件但随后切换焦点
- vba - VBA,如何将函数作为另一个函数的参数传递
- android - 无法使用给定参数调用 requestLocationUpdates
- c# - Swashbuckle - 在招摇文档中将字符串视为枚举
- entity-framework - 实体框架代码第一个一对零或一个具有单独身份的关系
- c# - 我可以在 UWP 应用程序中执行 Python 文件吗?
- c# - Dll 的内部引用在主代码中被破坏
- python - Python:意外的字符串比较结果:真!=真