Is there any way to send notifications from FCM
from a node.js
server?
I haven't found anything about it inside documentation.
Before any Firebase cloud messages can be sent using Node. js, an additional JSON file needs to be generated and installed on the server. This file contains a private key that allows Node. js code to communicate through the SDK to the Firebase messaging service and is generated from within the Firebase console.
Go to Firebase console — →Project Settings — →Cloud Messaging. To send the message select Body — →Raw — →JSON(application/json). You can send Notification Payload , Data Payload and even both using POSTMAN service.
Sending messages through Firebase Cloud Messaging takes calling an HTTP end point as described in the documentation on sending downstream messages.
Something as simple as this could do the trick:
var request = require('request'); function sendMessageToUser(deviceId, message) { request({ url: 'https://fcm.googleapis.com/fcm/send', method: 'POST', headers: { 'Content-Type' :' application/json', 'Authorization': 'key=AI...8o' }, body: JSON.stringify( { "data": { "message": message }, "to" : deviceId } ) }, function(error, response, body) { if (error) { console.error(error, response, body); } else if (response.statusCode >= 400) { console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage+'\n'+body); } else { console.log('Done!') } }); sendMessageToUser( "d7x...KJQ", { message: 'Hello puf'} );
Update (April 2017): you can now also run code very similar to this in Cloud Functions for Firebase. See https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens
//I done by this code using node- gcm module. //We're using the express framework and the node-gcm wrapper var express = require('express'); var gcm = require('node-gcm'); //init express var app = express(); app.get('/push', function (req, res) { var message = new gcm.Message({ data: { key1: 'hello' }, notification: { title: 'SPECOZ Offers1', body: 'body_data' } }); // Set up the sender with you API key, prepare your recipients' registration tokens. var sender = new gcm.Sender('Api_Key'); sender.send(message, 'device_token', function (err, response) { if (err) { console.error("Error:", err); } else console.log("Response:", response); res.send(response); }); }); app.listen("pass the port number");
const admin = require('firebase-admin');
const payload = {
notification: {
title: 'this is title', body: 'this is body'
},
data: {
balance: 100,
priceplanId: 1235
}
}
const deviceToken ='yourtoekn' | ['yourtoekn'];
admin.messaging().sendToDevice(deviceToken, newpayload)
.then((_response) => console.log(_response))
.catch(error => console.log(error));
emphasized text You can send a notification to both ios and Android devices;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With