【问题标题】:Why message id from Firebase Cloud Messaging is empty为什么来自 Firebase Cloud Messaging 的消息 ID 为空
【发布时间】:2021-06-26 09:18:02
【问题描述】:

我正在使用 NPM firebase-admin 模块从旧版 HTTP 迁移到 v1。但是我有一个问题,发送通知时它没有给出任何错误,但它没有返回消息 ID,并且设备上没有收到通知。

  • 节点版本:12.14.1。
  • firebase-admin 版本:9.6.0

服务器代码:

const admin = require('firebase-admin');

var serviceAccount = require('./file.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

const messaging = admin.messaging();

async function sendPush() {
  const message2 = {
    notification: {
      title: 'test title',
      body: 'test'
    },
    token: 'valid-token'
  };

  try {
    const test = await messaging.send(message2);

    console.log('--------------------------Successfully sent message:--------------------------');
    console.log(test);
    console.log('------------------------------------------------------------------------------');
  } catch(err) {
    // Will catch both thrown exceptions as well as rejections
    console.log('--------------------------Error sending message:', err);
  }
}

当我使用 sendPush 函数发送通知时,我在控制台中收到以下响应:

--------------------------Successfully sent message:--------------------------
projects/project-name/messages/
------------------------------------------------------------------------------

它不包含文档中指定的消息 ID,我没有收到通知。

文档示例响应:

projects/myproject-b5ae1/messages/0:1500415314455276%31bd1c9631bd1c96

编辑:

我测试了 firebase-admin 的 sendToDevice 函数(旧版 API),它可以工作。

messaging.sendToDevice('valid-token', message)
  .then(response => {
    console.log('--------------------------Successfully sent message:--------------------------');
    console.log(response);
    console.log('------------------------------------------------------------------------------');
  })
  .catch(err => {
    console.log('--------------------------Error sending message:', err);
  });

推送已交付。 但是 send、sendMulticast 和 sendAll (v1 API) 仍然无法正常工作。

【问题讨论】:

    标签: node.js firebase firebase-cloud-messaging


    【解决方案1】:

    解决了。

    问题在于来自 android 的令牌对于新的 FCM 版本不正确。更新应用中的令牌生成后,它已开始适用于旧版和 v1。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2023-04-01
      • 1970-01-01
      • 2018-02-18
      • 2018-10-18
      • 2023-01-21
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      相关资源
      最近更新 更多