1

我有一个包含许多作业的 Firestore 集合,但我想在客户端按作业编号对它们进行分组。我在网上浏览了很多例子,this.jobs = this.afs.collection('jobs').valueChanges().pipe(groupBy((job: any) => job.jobNumber), mergeMap(group => group.pipe(toArray())));但没有成功。我所拥有的是

作业 - 作业编号 1 - 作业编号 2 - 作业编号 3 - 作业编号 1

但我想要的是

作业 - [作业编号 1,作业编号 1] - [作业编号 2] - [作业编号 3]

4

1 回答 1

1

问题是,当您订阅它时,valueChanges()它变得观察并且永远不会完成,因此您无法获得想要的结果 - 流应该如何知道所有作业编号 1何时到达?不过,可以做一些变通方法,f.ex。添加一个timeoutscan收集累加器主题等中的所有值,然后合并这些并发出。

但是,如果您已经在本地存储了所有数据,这是否有意义?可能不是。IMO,您只能在响应到达后使用,f.ex。创建主题并根据对它们的job number 1调用next()

于 2019-05-14T17:22:19.253 回答