flutter - Flutter Firestore Streambuilder 与未来
问题描述
我有一个简单的问题。对我的 Firestore 集合的引用是动态的。在这段代码中,getDocumentReference() 在检查用户的电子邮件后为我提供了对文档的引用。我使用此文档参考来获取我的快照。
Future<Stream<QuerySnapshot>> getHabits() async {
DocumentReference document = await getDocumentReference();
var snapshots = document.collection('habits').snapshots();
return snapshots;
}
如您所见,我想将其Future<Stream<QuerySnapshot>>
用于流构建器。我怎样才能做到这一点?我尝试过这样的事情。但它没有将未来作为流的输入
return StreamBuilder(
stream: getHabits(),
);
解决方案
您可以将其包装在FutureBuilder中:
return FutureBuilder<Stream<QuerySnapshot>>(
future: getHabits(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return StreamBuilder(stream: snapshot.data); // Success
} else if (snapshot.hasError) {
return Text('${snapshot.error}'); // Error
} else {
return CircularProgressIndicator(); // Loading
}
},
);
推荐阅读
- r - 为什么数据会这样表达?
- excel - 将一张纸的最后 3 个单元格相乘并将它们放在另一张纸中
- amazon-web-services - 一次使用单独的 Lambda 处理 AWS SQS 消息
- python - 使用 sqlalchemy-flask 在数据库中存储 XML 文件的最佳方法是什么?
- angular - 如何以角度修复“模块重复”
- podman - Podman 1.6 绑定挂载创建问题
- java - 在多个 JSP 页面中添加 ArrayList
- python-3.x - Celery 只重试循环中的失败请求并继续另一个
- r - 在不使用 Java 的情况下在 R 中写入文件 xlsx
- c# - 选择两个文件时,从右键单击 Windows 上下文菜单中隐藏一个选项