下面是google cloud function,部署正确,并且可以很好地实现function - functions/index.js
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应用程序中成功调用时访问此函数的事件
const myFunctions = require("./functions/index");
myFunctions.createUser().then((data) => {
console.log(data)
})
.catch((err) => {
console.log(err);
})
到目前为止,获取下面的错误
发布于 2018-06-12 15:43:04
您的Firestore云函数是由Firestore onCreate()
事件类型触发的,因此根据documentation,它将“在第一次写入文档时触发”。
该文档还添加了以下内容:
在典型的生命周期中,云Firestore函数执行以下操作:
因此,如果您想要从“外部世界”触发此云函数,例如从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
发布于 2018-06-12 14:29:38
我会试着回答你的问题,但它有点不清楚。你问:
如何获取谷歌云函数执行事件
当函数触发并且你的代码正在运行时,事件已经开始了,也就是你的代码行const newValue = snap.data()
也许你正在寻找一种方法来完成某些任务,当触发器已经运行时?您只需从函数内部执行此操作,然后返回一个promise。例如,如果您有多个异步任务要运行,则可以使用Promise.all([])。
https://stackoverflow.com/questions/50810345
复制相似问题