Notification push du serveur personnalisé

Cela peut être fait en utilisant 2 méthodes avec requête HTTP Post, avec Firebase admin SDK exécuté sur votre serveur. Ici, je vais discuter des deux.

Protocole HTTP Firebase Cloud Messaging

De votre demande de serveur au lien ci-dessous pour envoyer la notification avec certains paramètres de demande

https://fcm.googleapis.com/fcm/send

Lors de la demande d’ajout d’en-têtes comme suit

Authorization    key=<Your_key_from_the_console>
Content-Type     application/json

Le corps de la demande varie

{
  "to" : <tokens or the topic>,
  "notification" : {
    "title":"This is a test title",
    "body":"This is the body"
  },
  "data": {
      //whatever key value payer you need to send  
  }
}

Les paramètres to prennent un tableau de jetons comme

["token1","token2",..........]

ou un seul jeton comme

"token"

ou un nom de sujet commençant par /topic/ comme

"/topic_name/"

Pour plusieurs conditions d’utilisation de sujet en utilisant || et les opérateurs && tels que

"/topic_name/ && /topic2/"

Utilisation du SDK d’administration (Node js)

Initialisez d’abord le SDK Firebase et le SDK d’administration

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.cert({
        //your admin credential certificate generated from the console. Follow this [link][1].
    }),
  databaseURL: "https:///<PROJECT_NAME>.firebaseio.com"
});

Créez une chaîne JSON de charge utile comme dans le premier exemple.

var payload = {
              notification: {
                title: "Title of the notification,
                body: "Body of the notification",
              },
              data:{
                //required key value pair
              }
            };

Appelez ensuite différentes méthodes d’envoi pour envoyer la notification.

Pour le sujet

admin.messaging().sendToTopic("/topic/", payload)
              .then(function(response) {
                console.log("Successfully sent message:", response);
              })
              .catch(function(error) {
                console.log("Error sending message:", error);
              });
            });

Pour appareil

admin.messaging().sendToDevice(token, payload).then(response=>{
                       response.results.forEach((result, index) => {
                        const error = result.error;
                        if (error) {
                          console.error('Failure sending notification to', tokens, error);
                        } else{
                          console.log('Sucessfully sent to '+tokens);
                        }
                      });

[1] : https://firebase.google.com/docs/admin/setup#add_firebase_to_your_app