【问题标题】:Function returned undefined, expected Promise or value motivation函数返回未定义的、预期的 Promise 或价值动机
【发布时间】:2018-08-05 06:06:24
【问题描述】:

嗨,这个 firebase 功能曾经可以工作,但知道它现在工作时间更长了,我收到了这个错误消息

函数返回未定义、预期的 Promise 或值

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);
});

【问题讨论】:

    标签: javascript node.js firebase google-cloud-functions firebase-admin


    【解决方案1】:

    在 firebase 函数中,您应该返回一个 Promise 或一个值。如果您的函数已经完成,您可以返回一个值。如果你的工作还有正在进行的工作,你必须返回一个 Promise,一旦工作完成就应该解决。

    在您的场景中,您有 admin.messaging().sendToDevice(deviceToken, payload); 在方法结束时未完成。因此,您应该返回一个承诺,一旦工作完成,该承诺就会解决。幸运的是 admin.messaging().sendToDevice(deviceToken, payload); 本身返回了一个承诺。所以你可以从函数中返回它,如下所示。

    return admin.messaging().sendToDevice(deviceToken, payload);
    

    【讨论】:

      【解决方案2】:

      改变这个:

         admin.messaging().sendToDevice(deviceToken, payload);
      

      到这里:

        return admin.messaging().sendToDevice(deviceToken, payload);
      

      【讨论】:

      • 谢谢,我已经试过了,错误信息消失了,但我仍然没有收到我的通知
      • Nevermind 现在可以工作了,我的令牌号错误。我会接受你的回答谢谢
      • 你好约翰,你能帮我解决这个问题吗!谢谢。 stackoverflow.com/questions/48979948/…
      猜你喜欢
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2019-08-06
      • 2019-11-18
      • 2018-06-12
      • 1970-01-01
      相关资源
      最近更新 更多