使用firebase admin sdk发送通知无法正常工作

时间:2017-11-19 16:55:23

标签: ios node.js firebase

我正在尝试从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);
    });
});

1 个答案:

答案 0 :(得分:7)

要发送通知,有效负载必须使用notification key

var payload = {
    notification: {
        title: 'My Title',
        body : 'TEST'
    }
};