具有Firebase(FCM)推送通知的节点js

时间:2018-05-19 03:18:19

标签: node.js firebase push-notification

我正在使用节点js开发REST api,并且有一个休息端点来发送firebase推送通知。我的代码如下,

const bodyParser = require('body-parser');
var cors = require('cors');
var FCM = require('fcm-node');
//var FCM = require('fcm-push');

router.post('/pushmessage', function (req, res) {

    var serverKey = 'server key taken from firebase site cloud messaging tab';
    var fcm = new FCM(serverKey);
    var reqObj = req.body;
    var token = reqObj.userToken;
    console.log("Token Value  :   " + token);
    var message = {
        to: token,
        collapse_key: 'xxxxxxxxxxxxxx',
        notification: {title: 'hello', body: 'test'},
        data: {my_key: 'my value', contents: "abcv/"}
    };
    fcm.send(message, function (err, response) {
        if (err) {
            res.json({status: 0, message: err});
            console.log("error : "+err);
        } else {
            console.log("MESSAGE SEND");
            res.json({status: 1, message: response});
        }
    })
});

从Android客户端应用程序生成的推送ID正确地命中此端点。但总是会给出错误 {"multicast_id":6340735554735214,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]} 请求被击中后。请有人可以帮帮我吗?此问题先前已在here中提出。

但这不适合我。我还尝试了thisthis

但没有任何进展。请帮忙。

1 个答案:

答案 0 :(得分:2)

不强制仅依赖 GCM ,今天有许多软件包可用于发送 pushNotification

下面列出了两个节点程序包。

使用fcm-call

let FCM = require('fcm-call');
const serverKey = '<Your Server Key>'; 
const referenceKey = '<Your reference key>'; //Device Key
let title = '<Your notification title here.>';
let message = '<Your message here>';

FCM.FCM(serverKey, referenceKey, title, message);

此小片段将在2-3秒内将PushNotification发送到您的专用设备。

快乐通知。