Skip to content

gwro/push-receiver

This branch is up to date with MatthieuLemoine/push-receiver:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

feb64e8 Β· Sep 8, 2020

History

46 Commits
Feb 26, 2018
Oct 26, 2017
Oct 25, 2017
Aug 7, 2020
Mar 8, 2018
Oct 25, 2017
Aug 8, 2017
Mar 8, 2018
Oct 25, 2017
Oct 14, 2017
Nov 9, 2017
Nov 9, 2017
Oct 25, 2017
Sep 8, 2020
Mar 8, 2018

Repository files navigation

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.

See this blog post for more details.

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 then 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...)
// persistentIds is the list of notification ids received to avoid receiving all already received notifications on start.
const persistentIds = getPersistentIds() || [] // get all previous persistentIds from somewhere (file, db, etc...)
await listen({ ...credentials, persistentIds}, onNotification);

// Called on new notification
function onNotification({ notification, persistentId }) {
  // Update list of persistentId in file/db/...
  updatePersistentIds([...persistentIds, persistentId]);
  // 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>"

About

A library to subscribe to GCM/FCM and receive notifications within a node process.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%