首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用firestore在node.js中获取谷歌云函数执行事件

如何使用firestore在node.js中获取谷歌云函数执行事件
EN

Stack Overflow用户
提问于 2018-06-12 14:16:22
回答 2查看 359关注 0票数 0

下面是google cloud function,部署正确,并且可以很好地实现function - functions/index.js

代码语言:javascript
运行
复制
const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp();

exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate((snap, context) => {
    const newValue = snap.data();
    console.log(newValue);
});

如何在node.js应用程序中成功调用时访问此函数的事件

代码语言:javascript
运行
复制
const myFunctions = require("./functions/index");

myFunctions.createUser().then((data) => {
    console.log(data)
})
.catch((err) => {
    console.log(err);
})

到目前为止,获取下面的错误

EN

回答 2

Stack Overflow用户

发布于 2018-06-12 15:43:04

您的Firestore云函数是由Firestore onCreate()事件类型触发的,因此根据documentation,它将“在第一次写入文档时触发”。

该文档还添加了以下内容:

在典型的生命周期中,云Firestore函数执行以下操作:

  1. 等待对特定文档的更改。(在这种情况下,当文档是第一次写入时)
  2. 在事件发生时触发,并执行其tasks
  3. Receives,该数据对象包含存储在指定文档中的数据的快照。

因此,如果您想要从“外部世界”触发此云函数,例如从node.js应用程序,您需要在相应位置创建一个新的Firestore文档,即在users集合下。为此,您将使用Node.js Server SDK,请参阅https://cloud.google.com/nodejs/docs/reference/firestore/0.14.x/

请注意,您也可以通过使用相应的client SDK创建一个新的user文档来从客户端应用程序(web、android、iOS)触发它。

在您的评论后更新

您不能直接将为云函数编写的代码“移植”并运行到Node.js应用程序。您必须为Node.js重新开发您的解决方案。

在您的例子中,您应该使用Node.js Server SDK (正如我在评论中提到的),并且可以使用CollectionReference的onSnapshot方法。请参阅https://cloud.google.com/nodejs/docs/reference/firestore/0.14.x/CollectionReference#onSnapshot

票数 1
EN

Stack Overflow用户

发布于 2018-06-12 14:29:38

我会试着回答你的问题,但它有点不清楚。你问:

如何获取谷歌云函数执行事件

当函数触发并且你的代码正在运行时,事件已经开始了,也就是你的代码行const newValue = snap.data()

也许你正在寻找一种方法来完成某些任务,当触发器已经运行时?您只需从函数内部执行此操作,然后返回一个promise。例如,如果您有多个异步任务要运行,则可以使用Promise.all([])。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50810345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档