AngularFire结果,以可观察的方式总结

时间:2019-07-02 19:45:38

标签: firebase firebase-realtime-database angularfire2 angular2-observables

我有一个要汇总的数据列表,以供返回。例如,在Firebase数据集中,我有一个销售结果列表。我也希望能够在回报中计算平均值。

Data:
    1:
        Date: 20190501,
        Person: "John Doe",
        Sales: 2000
    2:
        Date: 20190501,
        Person: "Bill Smith",
        Sales: 1250
    3:
        Date: 20190501,
        Person: "John Doe",
        Sales: 1500
    4:
        Date: 20190503,
        Person: "Bill Smith",
        Sales: 2000
    5:
        Date: 20190503,
        Person: "John Doe",
        Sales: 1000
    6:
        Date: 20190503,
        Person: "Bill Smith",
        Sales: 1300

当我获得此数据时,我想按日期,按人员汇总:

20190501:
    John Doe: 
        Sales: 3500,
        Average: 1750
    Bill Smith: 
        SaleS: 1250,
        Average: 1250
20190503:
    John Doe: 
        Sales: 1000,
        Average: 1000
    Bill Smith: 
        Sales: 3300,
        Average: 1650

通过AngularFire2获取条目列表非常简单:

this.AfDb.list<ISales>('Data', ref => ref.orderByChild('Date') ).valueChanges();

我的问题确实在地图,flatMap等上,涉及如何处理返回的数据列表以仍然按子字段排序,以及如何将这些值加到新的主键中,并计算出平均值,包括检查0。

我已经用其他数据类型做到了这一点,我返回了observable,然后在ngOnInit()函数的subscription()中,使用数组将数据组合成传统的集合(字典)。我认为这可能与RxJS可观察对象一起使用,但不知道如何开始。

0 个答案:

没有答案