Package Exports
- push-receiver
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (push-receiver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
push-receiver
A library to subscribe to GCM/FCM and receive notifications within a node process.
For electron, you can use electron-push-receiver instead which provides a convenient wrapper.
When should I use push-receiver
?
- I want to receive push notifications sent using Firebase Cloud Messaging in an electron desktop application.
- I want to communicate with a node process/server using Firebase Cloud Messaging infrastructure.
When should I not use push-receiver
?
- I want to send push notifications (use the firebase SDK instead)
- My application is running on a FCM supported platform (Android, iOS, Web).
Install
npm i -S push-receiver
Requirements
- Node v8 (async/await support)
- Firebase sender id to receive notification
- Firebase serverKey to send notification (optional)
Usage
Electron
You can use electron-push-receiver instead which provides a convenient wrapper.
Node
const { register, listen } = require('push-receiver');
// First time
// Register to GCM and FCM
const credentials = await register(senderId); // You should call register only once and the store the credentials somewhere
storeCredentials(credentials) // Store credentials to use it later
const fcmToken = credentials.fcm.token; // Token to use to send notifications
sendTokenToBackendOrWhatever(fcmToken);
// Next times
const credentials = getSavedCredentials() // get your saved credentials from somewhere (file, db, etc...)
// persistentId is the id of the last notification received to avoid receiving all already received notifications on start.
const persistentId = getPersistentId() // get your last persistentId from somewhere (file, db, etc...), can be null
await listen({ ...credentials, persistentId}, onNotification);
// Called on new notification
function onNotification({ notification, persistentId : newPersistentId }) {
savePersistentId(newPersistentId);
// Do someting with the notification
display(notification)
}
Test notification
To test, you can use the send script provided in this repo, you need to pass your serverKey and the FCM token as arguments :
node scripts/send --serverKey="<FIREBASE_SERVER_KEY>" --token="<FIREBASE_TOKEN>"