jlcvp / fcm-node

A Node.JS simple interface to Google's Firebase Cloud Messaging (FCM) for Android & iOS & Web Notification and data push
MIT License
125 stars 46 forks source link

fcm.send always called more than one time. #43

Closed laychar closed 5 years ago

laychar commented 5 years ago

Following is my code


var push = function (req, res) {
    console.log('1');
    var id = req.body.id || 0;
    var FCM = require('fcm-node');
    var database = req.app.get('database');
    var output = {};
    var client_token;
    var ct = parseInt(Date.now());
    if (database) {
        var al3 = { s: 'ss' };
        database.TkModel.find({ id: id }, function (err, results) {
            if (err) {
                console.log('TkModel.find err');
                output.status = 401;
                res.send(output);
                return;
            }
            if (results.length > 0) {
                client_token = results[0]._doc.ptk;
                var serverKey = 'AAAAMZQpZhw:AP************************************************-';
                var push_data = {
                    to: client_token,
                    notification: {
                        title: "title",
                        body: "body.",
                        sound: "default",
                        icon: "fcm_push_icon"
                    },
                    priority: "high",
                    restricted_package_name: "com.app.metacoin",
                    data: al3
                };
                var fcm = new FCM(serverKey);
                console.log('444');
                fcm.send(push_data, function (err, response) {
                    console.log('55');
                    if (err) {
                        output.status = 700;
                        res.send(output);
                        return;
                    }
                    console.log('2222');
                    output.status = 100;
                    // res.send(output);
                    return;
                    console.log('3');
                });
            } else {
                console.log('TkModel.find: results.length==0 -->err');
                output.status = 411;
                res.send(output);
            }
        });
    } else {
        console.log('push1: no database');
        output.status = 410;
        res.send(output);
    }
};
module.exports.push = push;```