热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Firebase汇总属性的价值,而无需获取所有相关文档

我具有以下firebase结构:{"company1":{"name":"CompanyOne&#

我具有以下firebase结构:

{
"company1": {
"name": "Company One","invoices": {
"invoice1": {
"amount": 300,"currency": "EUR","timestamp": 1572608088
},"invoice2": {
"amount": 460,"timestamp": 1572608088
}
}
}
}

也就是说:
我有一个收藏集companies
每个公司都有一个文件。
每个公司都有一个子集合invoices

每张发票都具有属性amountcurrencytimestamp

是否存在一种有效的方法来获取公司所有发票的总金额,而无需从Firestore提取所有相关文档?
这是我想出的方法,效率很低:

this.afs.collection('companies').document('company1').collection('invoices',ref => ref.where('timestamp','>',1556710488).where('timestamp',1572953978))

由于请求的时间段未知,我不能仅仅使用云函数来增加值。




  

是否有一种有效的方法来获取公司所有发票的总金额,而无需从Firestore中获取所有相关文档?

是的,您可以在名为totalAmount的公司文档中添加新属性,您可以在其中存储所有发票的总额。每次添加新发票时,只需将totalAmount增加新发票的金额即可。现在,为了获得此新属性的值,需要读取单个文档。使用此解决方案,您只需支付一项读取操作,而无需 支付发票子集合中的发票总数。


推荐阅读
  • MAKER:Technovation/译:趣无尽Cherry(转载请注明出处)本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期《用树莓 ... [详细]
  • pandas是Python下强大的数据分析工具,这篇文章代码主要来自于10Minutestopandas,我将示例代码进行了重跑和修改,基本可以满足所有操作,但是使用更高级的功 ... [详细]
  • Conflictwithfirebase11.8.0andgoogle-servicesplugin3.1.2 ... [详细]
  • 三周内构建 JavaScript 全栈 web 应用
    从构思到部署应用程序的简单分步指南我在GraceHopperProgram为期三个月的编码训练营即将结束,实际上这篇文章的标题有些纰漏——现在我已经构建了三个全栈应用:从零开始的电 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了Hive常用命令及其用途,包括列出数据表、显示表字段信息、进入数据库、执行select操作、导出数据到csv文件等。同时还涉及了在AndroidManifest.xml中获取meta-data的value值的方法。 ... [详细]
  • Ihaveatablelikethis:我有这样一张桌子:mytable+----+------------+|id|date_time|+----+------ ... [详细]
  • Hbase 进阶
    一、RegionServer架构1)StoreFile保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上。每个Store会有一 ... [详细]
author-avatar
多米音乐_35562359
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有