【发布时间】: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