Firestore Cloud Function仅在路径更新为新的整数

时间:2019-06-19 02:14:10

标签: function google-cloud-firestore google-cloud-datastore angularfire2 angularfire

我有一个firestore数据库,看起来像这样

/entries/ ....
/users/{userid}...

一堆文档正在发送到...条目中,userid包含8个文档中的用户个人资料信息。

我的问题是条目doc包含字段小时数,而与包含字段weekly_capacity的用户doc没有关系

我需要将这两个字段合计为每小时/每周容量,将它们设置为全时等效变量

但是全职当量需要准确,并且该公司的FTE可以更改,因此即使用户更改了FTE状态x次数,也需要计算各个日期的FTE。

并且当前应用仅在用户登录应用时(可能在任何时候)都获取条目。

我使用的任何API请求都不会给我一个json,该json可以在同一次提取中同时包含weekly_capacity和hours。如果每次用户登录到应用商店时,firestore都会调用http来获取所有条目,那么我该如何比较集合条目中的hours字段和weekly_capacity字段

只有一点点背景:FTE =全职当量,用于衡量员工是否与他们签署的核心承诺时间进行比较(作为标准),以此作为衡量标准。如果我同意工作40和我工作实际工作40个小时,那么我将成为1整个FTE。如果我工作20岁而我想工作40岁,那么我就是.5 FTE。数学运算非常简单,只是在我这种情况下,变量FTE可以随时更改,并且该应用程序将允许用户输入日期范围,以获取他们的实际总工作时间,并通过FTE告知他们应该工作多少小时。工作与他们实际工作了多少小时。由于变量已更改,因此我需要在firestore中采用某种方式来跟踪更改并根据实际工作时间正确汇总。举一个错误的例子:假设我在3月20日将FTE从1更改为.7,然后我想生成3月1日至3月30日的报告,说明我的工作时间和FTE状态,这意味着我达到了目标。更重要的是,我无法获取或合并包含变量hours的条目和包含变量/users/的变量weekly_capacity

我什至不认为云功能可以解决问题,因为只有在用户登录时才获取条目,对吗?

1 个答案:

答案 0 :(得分:0)

我假设以下内容可以回答您的问题。

要求:在用户weekly_capacity更新或用户登录时计算用户的FTE。

问题

  1. 在Firestore中以某种方式跟踪更改。

  2. 根据更改正确计算FTE。

这就是我想解决的问题。

  1. Google Cloud Firestore支持用于存储数据的集合的侦听器。因此,您可以收听users集合和entries集合中的任何更改。这就是您跟踪更改的方法。
  2. 要计算FTE,当对weekly_capacity文档的user进行更改或对entries集合进行新输入时,您需要分别查询两个集合以获取对应的记录给受影响的用户。您也可以为此使用collections-group查询,但这取决于您的数据库设计。

希望有帮助。