如何发送推送通知Firebase

时间:2017-01-13 18:28:09

标签: android node.js firebase

我是Firebase的新手,我从旧的MySql数据库中调整它的主要原因是能够发送推送通知和动态链接。在过去的两天里,我一直在尝试向已经从我的node.js脚本订阅主题的一群人发送通知。该脚本始终返回InternalServerError。我能够从Firebase控制台发送通知,但这对我的应用程序来说还不够好,因为我需要实现动态通知(即由一个用户操作触发)。

到目前为止,我还不明白官方文档中的内容,并尝试按照我找到的教程进行操作,目前我在这里

app.get('/push',function(req,res){
  /*var title = req.params.title;
  var body = req.params.body;*/
//  var confName = req.params.name;
  var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera)
      to: '/topics/ilisten',
    //  collapse_key: 'your_collapse_key',

      notification: {
          title: 'This is Title',
          body: 'This is body'
      },

      data: {  //you can send only notification or only data(or include both)
          my_key: 'Conf Name here'
      }
  };
  fcm.send(message, function(err, response){
    if (err) {
        console.log("Something has gone wrong!"+err);
    } else {
        console.log("Successfully sent with response: ", response);
    }
});
})

我的第一个问题是我应该在to字段中执行哪些操作,以便我的应用中的所有用户都能完成通知。

我还想看一下使用android代码正确和完整地实现这个概念。如果有人有此类代码,请在此处分享,因为这有助于未来Firebase用户无法理解像我这样的官方文档。

1 个答案:

答案 0 :(得分:1)

以下是使用node-gcmhttps://github.com/ToothlessGear/node-gcm

的一种方法
  var gcm = require('node-gcm');

  var sender = new gcm.Sender(<sender_key>);

  var message = new gcm.Message();
  message.addNotification('title', title);
  message.addNotification('body', body);

  sender.send(message, { topic: "/topics/" + topic }, function (err, response) {
    if (err) console.error(err);
    else console.log(response);
  });