Firebase 云函数执行未结束
Firebase cloud function execution not ending
我的 firebase 项目几乎没有云功能。其中一些向用户发送推送通知。在部署任何功能之前,我在本地环境中使用独立的 nodejs 项目使用 nodeJS 对其进行开发。
但是今天我注意到在我尝试向单个用户发送推送通知后函数执行卡住了。我的意思是说在我点击 节点 test.js 之后光标没有 return 并且执行永远不会停止。我需要执行 ctrl + z 才能结束执行。但是我收到了推送通知。
我的代码:
async function sendTest() {
await admin.messaging().sendToDevice(token, payload);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
}
下面也是类似的代码,但是打印调试后也没有结束执行。声明。
async function sendTest() {
var notificationPersonalPromises = []
notificationPersonalPromises.push(admin.messaging().sendToDevice(token, payload));
await Promise.all(notificationPersonalPromises);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
}
在上述两种情况下,我都会在几秒钟内收到通知,并且会立即打印调试信息。如果我注释掉推送通知代码,那么一切正常。请帮忙...
下图显示了函数如何永不结束光标一直在等待...
谢谢
确保您的云函数具有 retunr
。即使你什么都不 return。您还可以 return 您最后的承诺,例如:
async function sendTest() {
return admin.messaging().sendToDevice(token, payload);
}
或者只是一个空的 return 就像这里:
async function sendTest() {
await admin.messaging().sendToDevice(token, payload);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
return
}
我的 firebase 项目几乎没有云功能。其中一些向用户发送推送通知。在部署任何功能之前,我在本地环境中使用独立的 nodejs 项目使用 nodeJS 对其进行开发。
但是今天我注意到在我尝试向单个用户发送推送通知后函数执行卡住了。我的意思是说在我点击 节点 test.js 之后光标没有 return 并且执行永远不会停止。我需要执行 ctrl + z 才能结束执行。但是我收到了推送通知。
我的代码:
async function sendTest() {
await admin.messaging().sendToDevice(token, payload);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
}
下面也是类似的代码,但是打印调试后也没有结束执行。声明。
async function sendTest() {
var notificationPersonalPromises = []
notificationPersonalPromises.push(admin.messaging().sendToDevice(token, payload));
await Promise.all(notificationPersonalPromises);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
}
在上述两种情况下,我都会在几秒钟内收到通知,并且会立即打印调试信息。如果我注释掉推送通知代码,那么一切正常。请帮忙...
下图显示了函数如何永不结束光标一直在等待...
谢谢
确保您的云函数具有 retunr
。即使你什么都不 return。您还可以 return 您最后的承诺,例如:
async function sendTest() {
return admin.messaging().sendToDevice(token, payload);
}
或者只是一个空的 return 就像这里:
async function sendTest() {
await admin.messaging().sendToDevice(token, payload);
console.debug('Message Sent'); // this line gets printed instantly but execution continues
return
}