Nabto Edge Push Notification Quick Start
This quick start guide shows how to setup a ready-made Nabto Edge client and device for sending push notifications through Firebase Cloud Messaging (FCM). The example applications uses a pre-configured Firebase project, and so the configuration of Firebase is not needed for this example.
Nabto Cloud Configuration
To use Nabto Edge, you must first create a free account through the Nabto Cloud Console if not done already.
Once you have created an account, navigate to the Products page create a new Nabto Edge product. Note down the product ID.
In the “Configured Devices” tab, create a new device. From the device page, note the device ID. First time you start the device, it will generate an encryption key. The fingerprint of the derived public key must be configured on this page (described in next section how to obtain).
You are now ready to start building the Embedded device application.
Embedded Device Application
Follow the general build instructions on the
Embedded SDK intro page to build the
To run the application, use the product ID and device ID noted above and execute the following in a terminal:
$ ./_install/bin/simple_push_device pr-abcdefg de-hijklmn Nabto Embedded SDK Version 5.11.0 Device: pr-abcdefg.de-hijklmn with fingerprint: [73e53042551c128a492cfd910b9ba67fffd2cab6c023b50c10992289f4c23d54] Pick a category to trigger a push notification for [i] info category [w] warn category [a] alert category [q] Close the device and quit
The first time the device is run, it will generate a private key to
use for secure communication with the Nabto Edge Basestation and Nabto
Edge Client and store it locally in the
device.key file. When
started, the device prints the associated fingerprint, which must be
configured on the Nabto Cloud Console device page as described in the
Once the fingerprint is configured, the device will be allowed to attach to the basestation allowing it to send push notifications.
The device uses the IAM module to pair, authenticate, and store client configuration.
Two types of push notifications can be sent using this example:
- The IAM module provides a CoAP endpoint to send a test notification to a specific client paired with the device.
- Clients can subscribe to notification categories using CoAP endpoints in the IAM module, the device application can then send notifications to all clients subscribing to a particular category.
This example can send push notifications to clients subsribed to three different push notifications categories by entering its corresponding letter, eg.:
i Sending FCM notification to all users subsribed to category Info Sent all notifications for category Info Pick a category to trigger a push notification for [i] info category [w] warn category [a] alert category [q] Close the device and quit
Currently, no clients are paired with the device, and so, no notifications will actually be sent until a client is paired.
Mobile Client Application
Push notification examples are available for Android with iOS coming soon. This example uses the local open pairing mode, so the client app must run on the same LAN the desktop based device application while pairing. Once the client is paired with the device, remote connections can be used.
Clone the github repository then build and run the app. This is done either graphically through Android Studio, or using gradle and adb from command-line:
git clone https://github.com/nabto/android-simple-push.git cd android-simple-push ./gradlew build adb install app/build/outputs/apk/debug/app-debug.apk
After opening the app, press
pair new device. The app now scans the
local network for devices available for pairing. When your device is
pair and type a username for your client on the
device. The username can only contain lower case letters, numbers, and
-. When paired, go to the device settings
page. From here you can subscribe to the three notification categories
available for the device, as well as sending a test notification to
When subscribed to a notification category, triggering push notifications from the device should result in notifications arriving on your Android device.
Making your own applications
Now that you have sent your first push notifications using Nabto Edge, you are ready to integrate it
into your own applications. As noted earlier, the FCM project ID and registration token is sent to
the device from the client application using the CoAP endpoint
/iam/users/:username/fcm provided by the
SDK. This means, the embedded device example will work equally well with your own Firebase project
and mobile app.
Your next step should, therefore, be creating your own Firebase project and making it work with the example device. When your Firebase project is configured, you can modify the example mobile client application to ensure it is working before integration into your own applications.
Changing Firebase Project in Android Example
To change which Firebase project the Android example app uses, go to
your Firebase project, and add the example App (the example package
com.nabto.simplepush). When added, download the
google-services.json file for your project. Use it to replace the
existing file located at
app/google-services.json. Rebuild and run
the app, and push notifications should now go through your own