【问题标题】:Using .groupBy with Firestore collection data将 .groupBy 与 Firestore 收集数据一起使用
【发布时间】:2019-05-14 08:49:35
【问题描述】:

我有一个包含许多作业的 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]

【问题讨论】:

    标签: rxjs google-cloud-firestore rxjs6 angularfire5


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这就是我现在正在做的事情。让所有数据在客户端排序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多