我正在尝试从Node.js服务器向ios应用程序发送通知。如果我从Firebase控制台发送通知似乎有效,但如果使用firebase-admin sdk从我的node.js服务器尝试,则无效。
我遵循了https://firebase.google.com/docs/cloud-messaging/admin/send-messages的教程。
我不明白的一件事是发送通知后的响应似乎有效。我得到了回应。
{
"results": [
{
"messageId": "0:1511109840587284%a63b4c28f9fd7ecd"
}
],
"canonicalRegistrationTokenCount": 0,
"failureCount": 0,
"successCount": 1,
"multicastId": 7436388871122493000
}
有谁知道我做错了什么?
- 编辑
以下是发送通知的代码。 admin 是firebase-admin实例。
router.post('/notify', (req, res) => {
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "<database>.firebaseio.com"
});
var registrationTokens = [
'tokenFromIosApp'
];
var payload = {
data : {
body : 'TEST'
}
};
admin.messaging().sendToDevice(registrationTokens, payload)
.then((response) => {
console.log('Sent successfully.\n');
console.log(response);
res.status(statusCodes.Ok);
res.json(response);
})
.catch((error) => {
console.log('Sent failed.\n');
console.log(error);
res.status(statusCodes.InternalServerError);
res.json(error);
});
});
答案 0 :(得分:7)
要发送通知,有效负载必须使用notification
key:
var payload = {
notification: {
title: 'My Title',
body : 'TEST'
}
};