【发布时间】:2023-03-26 09:29:01
【问题描述】:
我有 2 个 Firestore 查询并希望将它们合并到一个可以使用 StreamBuilder 显示的流中。
StreamGroup 不适合我,因为它只发出最新发出的流的值。 StreamZip 也不适合我,因为它会压缩 Stream 的值,例如标题和帖子,但返回的 QueryResult 的长度可能不等于另一个,如果最短的 Stream 超出索引,两个流都会停止。
这里有一些虚拟/伪代码:
Stream query1 = Some FirestoreQuery;
Stream query2 = Some FirestoreQuery;
Stream mergedQuerys = merge([Query1, Query2])
mergedQuerys.listen((mergedQueryDocs) {
print(mergedQueryDocs)
})
query1.emit([1,2,3])
//Output should be => [1,2,3]
query2.emit([4,5,6])
//Output should be => [1,2,3,4,5,6]
query1.emit([])
//Output should be => [4,5,6]
我只想合并它们,如果 2 个基础 Stream 之一发出它应该将两个值都发送到新 Stream。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore