嗨这个firebase函数用于工作,但知道它现在更长时间工作,我收到此错误消息
函数返回未定义,预期的Promise或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);
});
答案 0 :(得分:3)
改变这个:
admin.messaging().sendToDevice(deviceToken, payload);
到此:
return admin.messaging().sendToDevice(deviceToken, payload);
答案 1 :(得分:2)
在firebase函数中,您应该返回Promise或值。如果您的功能已经完成,您可以返回一个值。如果您的工作仍在进行中,您必须返回一个Promise,一旦工作完成就应该解决。
在您的方案中,您在方法结束时没有完成admin.messaging().sendToDevice(deviceToken, payload);
。因此,您应该返回一个工作完成后解决的承诺。幸运的是admin.messaging().sendToDevice(deviceToken, payload);
本身会返回一个承诺。所以你可以从函数中返回它,如下所示。
return admin.messaging().sendToDevice(deviceToken, payload);