【问题标题】:StreamBuilder shows only the results of the second MergeStream elementStreamBuilder 仅显示第二个 MergeStream 元素的结果
【发布时间】:2021-03-03 22:45:34
【问题描述】:

我正在尝试使用可以在多个流中搜索的SearchDelegate()。现在我正在尝试在两者之间进行搜索。要合并两个 FireStore 流,我使用的是MergeStream()。我没有收到错误,但我只能看到第二个流的结果。这是我的代码:

 Stream stream1 =
        FirebaseFirestore.instance.collection('stream1').snapshots();
    Stream stream2 =
        FirebaseFirestore.instance.collection('stream2').snapshots();


 Stream<QuerySnapshot> mergedStream =
        MergeStream([stream1, stream2]);

return StreamBuilder(
      stream: mergedStream,
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (!snapshot.hasData)
          return Center(
            child: Text('Loading...'),
          );

        final results = snapshot.data.docs.where(
          (DocumentSnapshot a) => a.data().toString().toLowerCase().contains(
                query.toLowerCase(),
              ),
        );

        return Container(
          margin: EdgeInsets.symmetric(vertical: 20.0),
          child: ListView(................ etc,

【问题讨论】:

    标签: flutter dart google-cloud-firestore stream rxdart


    【解决方案1】:

    使用Rx.combineLatest 代替merge

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      相关资源
      最近更新 更多