firebase
Invia notifica dal server personalizzato
Ricerca…
introduzione
Questo può essere fatto usando 2 metodi con richiesta HTTP Post , con SDK admin Firebase in esecuzione sul tuo server. Qui discuterò entrambi.
Protocollo HTTP Firebase Cloud Messaging
Dalla richiesta del server al link sottostante per inviare la notifica con alcuni parametri di richiesta
https://fcm.googleapis.com/fcm/send
Durante la richiesta di aggiungere intestazioni come segue
Authorization key=<Your_key_from_the_console>
Content-Type application/json
Il corpo della richiesta varia
{
"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
}
}
I parametri to accettano array di token come
["token1","token2",..........]
o un singolo token come
"token"
o un nome di argomento che inizia con / topic / like
"/topic_name/"
Per più argomenti utilizzare le condizioni usando || e gli operatori di && come
"/topic_name/ && /topic2/"
Utilizzo di Admin SDK (nodo js)
Inizialmente inizializza l'SDK di Firebase e l'SDK dell'amministratore
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"
});
Creare una stringa JSON del payload come nel primo esempio.
var payload = {
notification: {
title: "Title of the notification,
body: "Body of the notification",
},
data:{
//required key value pair
}
};
Quindi chiama diversi metodi di invio per inviare la notifica.
Per argomento
admin.messaging().sendToTopic("/topic/", payload)
.then(function(response) {
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
});
Per dispositivo
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);
}
});