我正在尝试使用RxDart将Firestore中的两个流合并为一个流,但它只返回一个流的结果
Stream getData() {
Stream stream1 = Firestore.instance.collection('test').where('type', isEqualTo: 'type1').snapshots();
Stream stream2 = Firestore.instance.collection('test').where('type', isEqualTo: 'type2').snapshots();
return Observable.merge(([stream2, stream1]));
}发布于 2018-09-09 15:11:24
根据您的用例,您可能不需要RxDart来执行此操作。如果您只想将两个Firestore流合并到一个Dart Stream中,则可以使用dart:async包中的StreamZip。
import 'dart:async';
Stream<List<QuerySnapshot>> getData() {
Stream stream1 = Firestore.instance.collection('test').where('type', isEqualTo: 'type1').snapshots();
Stream stream2 = Firestore.instance.collection('test').where('type', isEqualTo: 'type2').snapshots();
return StreamZip([stream1, stream2]).asBroadcastStream();
}发布于 2020-01-13 18:31:32
您可以使用RxDart从两个单独的流中使用mergeWith获取一个流,如下所示:
Stream getData() {
Stream stream1 = Firestore.instance.collection('test').where('type', isEqualTo: 'type1').snapshots();
Stream stream2 = Firestore.instance.collection('test').where('type', isEqualTo: 'type2').snapshots();
return stream1.mergeWith([stream2]);
}https://stackoverflow.com/questions/52238875
复制相似问题