Flutter:如何访问StreamBuilder中的多个流?

时间:2018-06-25 23:49:57

标签: firebase datatable stream google-cloud-firestore flutter

我尝试在我的初始流的构建器中制作一个新的StreamBuilder,虽然没有出现任何错误,但它似乎也不起作用。这可能吗?

基本上,我正在Firebase中访问根集合。该集合包含两个文档,在构建包含两个路径信息的数据表时,我需要每个文档的数据。

编辑:嵌套的StreamBuilder不起作用,因为StreamBuilder必须返回小部件,因此至少我知道为什么它不起作用。但是我仍然不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用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];

 // ...
});

您是否有minimal repro的内容以及要复制该行为的步骤?我还需要您尝试访问的数据的外观。这将帮助我直观地了解您如何尝试为Firestore运行多个流(假设自提到Collection以来,我一直假设)。