javascript - 如何每月在 Firebase 中制作销售报告?
问题描述
我已经可以通过以下方式获得订单的销售额:
useEffect(() => {
var totalIncome = 0;
firestore
.collection("orders")
.get()
.then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
totalIncome += doc.data().total;
});
console.log(totalIncome); //sales report
});
});
现在,我如何才能每月进行销售?
解决方案
要获得所有total
字段的总和,您必须:
- 将所有文档读入您的应用程序代码中,并且
- 将各个值相加。
这没有捷径可走,因为 Firestore 不支持所谓的聚合查询。
由于上述过程缓慢且昂贵,因此通常最好实际存储应用程序需要的所有聚合值的运行总计。有关这方面的更多信息,我建议阅读有关聚合查询和分布式计数器的 Firebase 文档。
基于此,您应该能够得到一些工作。如果您在执行此操作时遇到问题,我建议您使用能够重现您卡住的位置的最少代码进行回发。
推荐阅读
- python - Django 1.10 Legacy Database - 无法检索对象
- javascript - 基于按钮单击的标记选择
- jasper-reports - 未从第一个坐标填充折线图
- jq - 使用 JQ 在元素名称中直接访问带有冒号/特殊字符的 JSON 元素
- office-js - Excel Javascript API - setSelectedDataAsync 与在线 Excel 中的 R1C1 公式
- mysql - 如果不存在如何插入,如果存在则更新(更新插入)?
- c++ - 使用类似的比较功能时,在 C++ 中为 std:sort 获得不同的结果
- vba - 单击味精框后,它应该将我定向到输入框
- angular - Angular:使用 setter 与使用 ngModelChange 更新另一个字段(绑定到 getter,setter 在 Angular 世界中不好?)
- git - Git:cherry-pick commit,但仅在特定目录内更改