Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ankushtechdev/nodejs-firebase-push-notification-for-android-device


https://github.com/ankushtechdev/nodejs-firebase-push-notification-for-android-device

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Nodejs firebase push notification for android device

```js
let FCM = require('fcm-node');
import config from '../config'
var apn = require('apn');
let path = require('path');
let fs = require('fs');

// Set up apn with the APNs Auth Key
let apnProvider = new apn.Provider({
token: {
key: fs.readFileSync(path.resolve(__dirname + '/file.p8')),
keyId: config.keyId, // The Key ID of the p8 file (available at https://developer.apple.com/account/ios/certificate/key)
teamId: config.teamId, // The Team ID of your Apple Developer Account (available at https://developer.apple.com/account/#/membership/)
},
production: true // Set to true if sending a notification to a production iOS app
});

class PushNotification {
static async sendAndroid(data) {
return new Promise((resolve, reject) => {
var serverKey = config.serverKey; //put your server key here
var fcm = new FCM(serverKey);

var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera)
to: data.deviceToken,
collapse_key: config.collapse_key,
notification: {
title: data.title,
body: data.message
},
data: { //you can send only notification or only data(or include both)
data: data
}
};
fcm.send(message, function(err, response) {
if (err) {
console.log("Something has gone wrong!", err);
reject(err);
} else {
resolve(response);
console.log("Successfully sent with response: ", response);
}
});

})
}

}
module.exports = PushNotification

```