我正在使用firebase函数通过云消息传递创建通知。 但是我总是遇到这个错误:
Function execution took 60006 ms, finished with status: 'timeout'
,但通知有效。
这是我在index.js中使用的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.SendNotification = functions.https.onRequest((req, res) => {
var payload = {
notification: {
title: "this is a test",
body: req.rawBody.toString('utf8')
}
}
return admin.messaging().sendToTopic("all", payload);
});
我必须执行响应吗?什么时候,我该怎么做?
J3nsis
答案 0 :(得分:8)
HTTPS触发的Cloud Function在向其调用方发送响应时结束。由于您的代码从不发送响应,因此代码会一直运行直到其配置的超时(默认为1分钟)。
要在函数完成后正确终止函数,请在FCM调用完成后将结果发送回去:
admin.messaging().sendToTopic("all", payload).then(() => {
res.status(200).send("ok");
}).catch((err) => {
res.status(500).send(err);
});
我建议阅读文档中的本节: