firebase - Flutter 多个 Firestore 查询

我正在尝试对 Firestore 进行多个查询并将结果合并到一个流中,例如 here .我尝试使用 StreamGroup.merge() 但它只返回一个流的结果。我注意到它实际上确实获取了所有流的数据,但仅在一切完成时才返回一个。这是我所做的:

Stream getStream(){
    List<Stream> streams = [];     

    streams.add(Firestore.instance.collection(Constants.REQUESTS_NODE).
    where("municipality",isEqualTo: "City of Johannesburg Metropolitan").
    where("service_id",isEqualTo: 2).
    snapshots());
    streams.add(Firestore.instance.collection(Constants.REQUESTS_NODE).
    where("municipality",isEqualTo: "Lesedi Local").where("service_id",isEqualTo: 2).
    snapshots());    

    return StreamGroup.merge(streams);

  }

我错过了什么并且做错了什么?我这样做的原因是为了弥补 Firestore 缺少 OR 运算符。

最佳答案

我在网上找到的,希望对你有帮助:

`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];

 // ...
});`

https://stackoverflow.com/questions/52183978/

相关文章:

firebase - 当应用程序处于前台时,Flutter FCM 推送通知不起作用

android-studio - 如何在 Android Studio 中创建目录文件夹?

dart - flutter - 图像被删除后仍然存在?

flutter - 如何更改底部导航栏的颜色?

dart - 使用 Flutter 单击按钮后的网络请求

flutter - 在 Flutter 中,如何在某个 (x,y) 位置找到小部件?

android - Flutter-ListView 溢出

dart - flutter 模糊叠加

flutter - 如何混淆 Flutter 应用程序?

flutter - Flutter 中的 `TabBarView` 和 `PageView` 有什么