Firestore /云功能-如何在更改时更新Firestore数据

时间:2019-02-18 17:56:21

标签: reactjs firebase google-cloud-firestore google-cloud-functions

我刚刚将Cloud Function功能添加到了Firestore项目中,并且能够关注文档并获得Hello World https端点调用的支持。现在的问题是,我如何开始真正使用云功能来更新数据库中的数据?目前,我的Firestore结构如下:

Users(Collection)-> {user_unique_id}(文档)-> budget(collection)-> [data / general](两个不同的文档)。

因此,我希望每当更新数据或常规文档时都调用一个函数,该函数会同时获取数据和常规文档中的所有数据并运行一些数学运算,然后为每个文档返回更新后的值。

我的问题是,我实际上该如何做?现在,我已经尝试过functions.firebase.document(“ users / {userId}”)。onUpdate(),但这没有做任何事情,而且我不确定如何获取当前使用的userId?最重要的是,如何创建一个可以从应用程序中的方法定期调用的函数?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

最佳做法是使用Firestore触发的Cloud Function。您可以访问Cloud Firestore triggers文档以了解更多信息。选择在触发Cloud Firestore功能部分中指定的方法onUpdate。然后,您放置文档的路径,并且每次更新该文档时,都会触发该函数并执行一些您将在代码中指定的操作。

但是,提到“请记住Cloud Firestore当前处于beta版本,这可能会导致意外行为。”,建议不要在生产中使用BETA版本。


  

我该如何做一个可以定期从   我的应用程序中的方法?

创建一个HTTP触发的Cloud Function,每次您要调用它时,只需发出一个HTTP请求,该函数就会被触发。


  

我不确定如何获取当前使用的userId?

在上一个Stackoverflow问题上回答了此问题:Getting the user id from a Firestore Trigger in Cloud Functions for Firebase?

“很抱歉,Firestore SDK中尚未添加身份验证。我们在后续功能中列​​出了它。

请留意我们的发行说明以获取任何进一步的更新。”