flutter - 如何访问 StreamBuilder 中的多个流?
问题描述
我试图在StreamBuilder
我的初始流的构建器中创建一个新的,虽然我没有收到任何错误,但它似乎也不起作用。这可能吗?
基本上,我正在访问 Firebase 中的根集合。这个集合包含两个文档,我需要来自每个文档的数据,因为我正在构建一个包含来自两个路径的信息的 DataTable。
编辑:嵌套的 StreamBuilder 不起作用,因为 StreamBuilder 必须返回一个小部件,所以至少我知道它为什么不起作用。但我仍然没有决定要做什么。
解决方案
您是否尝试过使用StreamZip?这应该可以帮助您管理多个流。这是一个关于如何使用它的示例。
import 'package:async/async.dart';
Stream<DocumentSnapshot> stream1 = firestore.document('/path1').snapshots();
Stream<DocumentSnapshot> stream2 = firestore.document('/path2').snapshots();
StreamZip bothStreams = StreamZip([stream1, stream2]);
// To use stream
bothStreams.listen((snaps) {
DocumentSnapshot snapshot1 = snaps[0];
DocumentSnapshot snapshot2 = snaps[1];
// ...
});
您是否对尝试实施的内容以及复制行为的步骤进行了最小的复制?我还需要您尝试访问的数据的外观。这将帮助我想象您是如何尝试为 Firestore 运行多个流的(我假设因为Collection
有人提到过)。
推荐阅读
- python - 在 tensorflow 中使用 sess.run() 有多贵?
- c++ - 对象构造后 shared_from_this 中的 std::bad_weak_ptr 异常
- php - Laravel 中的三向关系
- node.js - 安装带有自制程序问题的节点mac OS
- javascript - HTML 表格在 div 之外结束
- android - 是否有对内置设备警报系统的 android/ios 的编程访问
- jenkins - groovy.lang.MissingPropertyException:没有这样的属性:类的管道:groovy.lang.Binding
- python - Python字典如何在for循环中调用第一个元素
- python - 应用 np.gradient 函数的不一致
- python - 使用 selenium Python 对多个搜索词进行迭代搜索