2017-01-13 209 views
0

我是Firebase的新手,我從舊的MySql DB改編的主要原因是能夠發送推送通知和動態鏈接。過去兩天我一直在嘗試向我的node.js腳本訂閱主題的人發送通知。該腳本始終返回InternalServerError。我可以從Firebase控制檯發送通知,但這對我的應用程序來說不夠好,因爲我需要實現動態通知(即由一個用戶操作觸發)。如何發送推送通知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

下面是使用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); 
    }); 
+0

@約翰 - 奧萊利我認爲這將是未來的訪客有用的,如果你能解釋如何將通知發送給所有用戶。 –

+0

@NirmalRaj這將發送消息給已訂閱給定'topic'的所有用戶 –

+0

@ john-oreilly有什麼方法可以將消息發送給安裝了我的應用的所有用戶。對於。例如我們可以從Firebase控制檯執行的操作 –