使用 Angularfire2 对从 firestore 获取的数据进行分组

Grouping of data fetched from firestore using Angularfire2

功能:

我有一个 Angular 项目,我必须为其生成一个图表,显示 invoiceDate 与 saleAmount。数据是从发票集合中提取的。

var invoiceRef = this.afs.collection<Invoice>('invoices', 
    ref=> ref.orderBy('creationDate','desc'));

我在这里获取每张发票的销售金额和发票日期。

问题

如何计算每个发票日期的销售额?

在传统的 SQL 中,你会写成

SELECT COUNT(saleAmount) FROM invoice GROUP BY invoiceDate;

如何使用 angularfire 查询 firestore 来做同样的事情?

不确定是否可以直接从 firestore 查询完成,但您可以在获取数据后(或之前,使用 cloud functions)实现执行此操作的函数。

它可能看起来像这样:

const groupedInovices = {};
invocies.forEach((inovice) => {
      groupedInovices[invoice.date] = groupedInovices[invoice.date] ? groupedInovices[invoice.date]++ : 1;
    });

您最终会得到一个如下所示的对象:

{
  "05/30/2019": 20
  "05/29/2019: 13
}