enter code here
以下是google云功能,部署正常并且运行正常
函数的路径 - 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);
})
答案 0 :(得分:1)
您的createUser
云功能是由Firestore onCreate()
事件类型触发的,因此在第一次写入文档时会触发"",根据{{ 3}}
该文档还添加了以下内容:
在典型的生命周期中,Cloud Firestore功能执行以下操作:
等待更改特定文档。 (在这种情况下,首次编写文档时)
事件发生时触发并执行其任务
- 醇>
接收包含存储在指定文档中的数据快照的数据对象。
因此,如果您想从"外部世界"触发此云功能,例如从node.js应用程序,您需要在相应位置创建一个新的Firestore文档,即在users
集合下。为此,您将使用Node.js Server SDK,请参阅documentation
请注意,您还可以通过使用相应的客户端SDK创建新的user
文档,从客户端应用程序(Web,Android,iOS)触发它。
根据您的评论进行更新:
你不能直接" port"并将为Cloud Functions编写的代码运行到Node.js应用程序。您将不得不为Node.js重新开发解决方案。
在您的情况下,您应该使用Node.js Server SDK(在我的评论中提到),您可以使用CollectionReference的onSnapshot
方法。见https://cloud.google.com/nodejs/docs/reference/firestore/0.14.x/
答案 1 :(得分:0)
我会尽力回答你的问题,但有点不清楚。你问:
如何获取Google云功能执行事件
嗯,事件已经开始,当功能触发并且你的代码正在运行时,即你的行const newValue = snap.data()
也许你正在寻找一种方法来执行某些任务,当触发器运行时?你只需从函数内部执行此操作,然后返回一个promise。例如,如果您要运行多个异步任务,则可以使用Promise.all([])。