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