Concat ждет, чтобы подписаться на каждый дополнительный Observable, который вы передаете ему, пока не завершится предыдущий Observable.
concat не будет читать stream2, пока stream1 не завершится
Concat не будет видеть и, следовательно, не будет генерировать какие-либо элементы, которые Observable испускает до завершения всех предыдущих Observable
, поэтому он слушает только первый поток. потому что он должен завершить первый поток перед переходом к следующему, и к тому времени уже слишком поздно, потому что stream2 уже выпустил некоторые элементы source
то, что вы, вероятно, ищете, это Rx.combineLatest поэтому вы объединяете каждый объект, излучаемый stream1 stream2, в один объект, который передается в stream3
Stream<List<MyLog>> myLogStream() {
Stream<QuerySnapshot> stream1 =
Firestore.instance.collection('devicelog/1/mylog').snapshots();
Stream<QuerySnapshot> stream2 =
Firestore.instance.collection('devicelog/2/mylog').snapshots();
return Rx.combineLatest2(stream1, stream2,
_fun_That_Combines_Each_Object_From_stream1_And_stream2);
}
QuerySnapshot _fun_That_Combines_Each_Object_From_stream1_And_stream2(
QuerySnapshot mylog1, QuerySnapshot mylog2) {
// do some magic
}