【发布时间】:2017-12-17 11:44:47
【问题描述】:
假设我有一个存储用户账单的应用程序,用户添加或删除账单。数据结构如下:
users/user_id/bills/bill_id
帐单文件结构为
{ bill_name: string, amount: number }
我想向用户显示与账单名称对应的聚合值 假设我在账单集合中有 2 个条目
{ bill_name: 'amazon', amount: 1000 }
{ bill_name: 'amazon', amount: 2000 }
我的输出应该是
{ bill_name: 'amazon', amount: 3000 }
我的问题是获得聚合值的最佳方法
创建一个在 onWrite 上触发的云函数
/user/user_id/bills/bill_id并在用户添加或删除账单时在/users/user_id/aggregated_bills/中创建一个新条目,以及此函数从/users/user_id/aggregated_bills/bill_id/读取数据的内容,其中账单名称为“amazon”,添加对此条目进行数学运算并将新值存储在aggregated_bills 集合。 我还想知道我们是否可以从云功能中添加或读取数据库,而不是引用它。在functions.firestore.document('/users/{user_id}/bills/{bill_id}').onWrite( ...创建一个触发 HTTPS 请求的云函数,并从账单名称为“amazon”的
/users/user_id/bills/读取数据并计算那里的聚合值,然后返回响应。可能是此问题的任何其他解决方案
在这里我想说的是,获取聚合值不仅适用于 一张账单,但同时用于多张账单。可以说我想 向用户仪表板显示他正在查看其汇总值的位置 排名前 20 的账单
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-functions angularfire2 google-cloud-firestore