Is it possible to send PushNotifications, using Firebase Cloud Messaging (FCM) to special UDID, directly from device?

Solution 1:

Currently it's not possible to send messages from the application itself. You can send messages from the Firebase Web Console, or from a custom server using the server-side APIs.

What you might want to do is to contact a server (like via http call) and that server will send the message to the user. This way ensure that the API-KEY of the server is protected.

PS: the sendMessage(..) api is called upstream feature, and can be used to send messages from your app to your server, if you server has an XMPP connection with the FCM server.

Solution 2:

Yes you can send push notification through Firebase.Please make sure do NOT include the server-key into your client. There are ways "for not so great people" to find it and do stuff... The Proper way to achieve that is for your client to instruct your app-server to send the notification.

You have to send a HTTP-Post to the Google-API-Endpoint.

You need the following headers:

Content-Type: application/json
Authorization: key={your_server_key}
You can obtain your server key within in the Firebase-Project.

HTTP-Post-Content: Sample

{ 
    "notification": {
        "title": "Notification Title",
        "text": "The Text of the notification."
    },
    "project_id": "<your firebase-project-id",
    "to":"the specific client-device-id"
}

Solution 3:

Google Cloud Functions make it now possible send push notifications from device-to-device without an app server.

From the Google Cloud Functions documentation:

Developers can use Cloud Functions to keep users engaged and up to date with relevant information about an app. Consider, for example, an app that allows users to follow one another's activities in the app. In such an app, a function triggered by Realtime Database writes to store new followers could create Firebase Cloud Messaging (FCM) notifications to let the appropriate users know that they have gained new followers.

Example:

  1. The function triggers on writes to the Realtime Database path where followers are stored.

  2. The function composes a message to send via FCM.

  3. FCM sends the notification message to the user's device.

Here is a demo project for sending device-to-device push notifications with Firebase and Google Cloud Functions.

Solution 4:

Diego's answer is very accurate but there's also cloud functions from firebase it's very convenient to send notifications in every change in the db. For example let's say you're building chat application and sending notification in every new follower change. This function sample is very good example.

For more information about cloud functions you can check official docs.