Typescript 如何对firebase firestore中的节点求和?

Typescript 如何对firebase firestore中的节点求和?,typescript,firebase,google-cloud-firestore,angular7,Typescript,Firebase,Google Cloud Firestore,Angular7,我正在制作一个用于订购比萨饼的应用程序 就像你们在图片上看到的一样,我想从每个文档中获取所有名为“ukupno”的键值,并将其求和为最终价格 这是我获取购物车数据的方式: this.cartService.getCart(this.user.Uid).subscribe(res => { this.cart = res.map(i => { return { ...i.payload.doc.data(), i

我正在制作一个用于订购比萨饼的应用程序

就像你们在图片上看到的一样,我想从每个文档中获取所有名为“ukupno”的键值,并将其求和为最终价格

这是我获取购物车数据的方式:

  this.cartService.getCart(this.user.Uid).subscribe(res => {
      this.cart = res.map(i => {
        return {
          ...i.payload.doc.data(),
          id: i.payload.doc.id
        };
      });
    });
  }
 getCart(uid) {
    return this.firestore
      .collection("cart/")
      .doc(uid)
      .collection("/ubaceno")
      .snapshotChanges();
  }

基本上有两种方法可以汇总集合中所有文档的文档字段值:

1/查询整个集合,循环结果(即),例如使用
forEach()
,并对循环中的所有字段值求和。要使用angularfire2实现这一点,您可能需要使用

但是如果您的收藏中包含大量文档,则这不是非常有效,而且每个文档在您的收藏中需要读取一个文档

2/使用一些为您的所有文档保留最新金额。要实现此方法,每次在
ubaceno
集合中创建/修改/删除文档时,都必须更新计数器,向计数器中添加或减去
ukupno
字段的值


您可以使用一组云函数在创建/修改/删除计数器时更新计数器,也可以在前端的写入/修改/删除代码中集成计数器更新事务

基本上有两种方法可以汇总集合中所有文档的文档字段值:

1/查询整个集合,循环结果(即),例如使用
forEach()
,并对循环中的所有字段值求和。要使用angularfire2实现这一点,您可能需要使用

但是如果您的收藏中包含大量文档,则这不是非常有效,而且每个文档在您的收藏中需要读取一个文档

2/使用一些为您的所有文档保留最新金额。要实现此方法,每次在
ubaceno
集合中创建/修改/删除文档时,都必须更新计数器,向计数器中添加或减去
ukupno
字段的值

您可以使用一组云函数在创建/修改/删除计数器时更新计数器,也可以在前端的写入/修改/删除代码中集成计数器更新事务