函数返回未定义、预期的 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);