函数返回未定义、预期的 Promise 或价值动机
Function returned undefined, expected Promise or value motivation
您好,这个 firebase 函数过去可以工作,但现在知道它不再工作了,我收到了这条错误消息
Function returned undefined, expected Promise or value
exports = module.exports = functions.analytics.event('first_open').onLog((event) => {
const payload = {
notification: {
title: 'you have a new user \uD83D\uDE43',
body: event.data.user.deviceInfo.mobileModelName + ' from ' + event.data.user.geoInfo.city + ', ' + event.data.user.geoInfo.country,
sound:"default",
vibrate:"true"
},
};
admin.messaging().sendToDevice(deviceToken, payload);
});
改变这个:
admin.messaging().sendToDevice(deviceToken, payload);
对此:
return admin.messaging().sendToDevice(deviceToken, payload);
在 firebase 函数中,您应该 return 一个 Promise 或一个值。如果您的功能已经完成,您可以 return 一个值。如果你的工作还有正在进行的工作,你必须 return 一个承诺,一旦工作完成就应该解决。
在您的场景中,您有 admin.messaging().sendToDevice(deviceToken, payload);
在方法结束时未完成。所以你应该 return 一个一旦工作完成就解决的承诺。幸运的是 admin.messaging().sendToDevice(deviceToken, payload);
本身 return 就是一个承诺。所以你可以从下面的函数中 return 它。
return admin.messaging().sendToDevice(deviceToken, payload);
您好,这个 firebase 函数过去可以工作,但现在知道它不再工作了,我收到了这条错误消息
Function returned undefined, expected Promise or value
exports = module.exports = functions.analytics.event('first_open').onLog((event) => {
const payload = {
notification: {
title: 'you have a new user \uD83D\uDE43',
body: event.data.user.deviceInfo.mobileModelName + ' from ' + event.data.user.geoInfo.city + ', ' + event.data.user.geoInfo.country,
sound:"default",
vibrate:"true"
},
};
admin.messaging().sendToDevice(deviceToken, payload);
});
改变这个:
admin.messaging().sendToDevice(deviceToken, payload);
对此:
return admin.messaging().sendToDevice(deviceToken, payload);
在 firebase 函数中,您应该 return 一个 Promise 或一个值。如果您的功能已经完成,您可以 return 一个值。如果你的工作还有正在进行的工作,你必须 return 一个承诺,一旦工作完成就应该解决。
在您的场景中,您有 admin.messaging().sendToDevice(deviceToken, payload);
在方法结束时未完成。所以你应该 return 一个一旦工作完成就解决的承诺。幸运的是 admin.messaging().sendToDevice(deviceToken, payload);
本身 return 就是一个承诺。所以你可以从下面的函数中 return 它。
return admin.messaging().sendToDevice(deviceToken, payload);