Con FCM, puoi inviare due tipi di messaggi alle tue app client:
- I messaggi di notifica, simili ai "messaggi di visualizzazione", vengono gestiti automaticamente dall' FCM SDK.
- I messaggi di dati, che vengono gestiti dall'app client.
I messaggi di notifica contengono un insieme predefinito di chiavi visibili all'utente e possono contenere un payload di dati facoltativo. I messaggi di dati, al contrario, contengono solo le coppie chiave-valore personalizzate definite dall'utente. Il payload massimo per entrambi i tipi di messaggi è 4096 byte, tranne quando si inviano messaggi dalla console Firebase, che applica un limite di 1000 caratteri.
| Scenario di utilizzo | Come inviare | |
|---|---|---|
| Messaggio della notifica | FCM SDK mostra il messaggio sui dispositivi degli utenti finali per conto dell'app client quando è in esecuzione in background. Altrimenti, se l'app è in esecuzione in primo piano quando viene ricevuta la notifica, il comportamento è determinato dal codice dell'app. |
|
| Messaggio di dati | L'app client è responsabile dell'elaborazione dei messaggi di dati. I messaggi di dati hanno solo coppie chiave-valore personalizzate senza nomi di chiavi riservati (vedi sotto). | In un ambiente attendibile come
Cloud Functions
o il server dell'app, utilizza l'
Firebase Admin SDK o l'
API HTTP v1.
Nella richiesta di invio, imposta la data
chiave.
|
Puoi utilizzare i messaggi di notifica quando vuoi che l'FCM SDK gestisca la visualizzazione automatica di una notifica quando l'app è in esecuzione in background. FCM può inviare un messaggio di notifica con un payload di dati facoltativo. In questi casi, FCM visualizza il payload della notifica e l' app client gestisce il payload dei dati.
Puoi utilizzare i messaggi di dati quando vuoi elaborare i messaggi con il tuo codice dell'app client.
Messaggi di notifica
Puoi inviare messaggi di notifica utilizzando la Firebase console, l' Firebase Admin SDK, o l'API HTTP v1 di FCM. La console Firebase fornisce test A/B basati su Analytics per aiutarti a perfezionare e migliorare i messaggi di notifica.
Per inviare messaggi di notifica utilizzando il Firebase Admin SDK o l'API HTTP v1 FCM, imposta la chiave notification con l'insieme predefinito di opzioni chiave-valore
del messaggio di notifica. Puoi utilizzare il seguente esempio per formattare un messaggio di notifica in un'app di messaggistica istantanea.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
I messaggi di notifica vengono inviati alla barra delle notifiche quando l'app è in background. Per le app in primo piano, i messaggi vengono gestiti da una funzione di callback.
Messaggi di dati
Sta a te decidere come utilizzare il payload data di FCM per implementare lo schema di crittografia che preferisci. Assicurati di non utilizzare parole riservate nelle coppie chiave-valore personalizzate. Le parole riservate includono from, message_type o
qualsiasi parola che inizia con google., gcm. o gcm.notification..
L'esempio seguente mostra l'utilizzo del campo dati di primo livello o comune, che viene interpretato dai client su tutte le piattaforme che ricevono il messaggio. Su ogni piattaforma, l'app client riceve il payload dei dati in una funzione di callback.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
Messaggi di notifica con payload di dati facoltativo
Puoi inviare messaggi di notifica che contengono un payload facoltativo di coppie chiave-valore personalizzate a livello di programmazione o utilizzando la Firebase console. Nel composer di notifiche, utilizza i campi Dati personalizzati in Opzioni avanzate.
Il comportamento dell'app quando riceve messaggi che includono payload di notifica e dati dipende dal fatto che l'app sia in background o in primo piano, in pratica se è attiva o meno al momento della ricezione.
- Quando sono in background, le app ricevono il payload della notifica nella barra delle notifiche e gestiscono il payload dei dati solo quando l'utente tocca la notifica.
- Quando sono in primo piano, l'app riceve un oggetto messaggio con entrambi i payload disponibili.
Di seguito è riportato un messaggio in formato JSON contenente sia la
notification chiave sia la data chiave:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}