| Seleziona la piattaforma: | iOS+ Android Web Flutter Unity C++ |
Per ricevere messaggi downstream, ogni app client deve implementare i metodi
on the
firebase::messaging::Listener
API.
Inizializzare FCM
Prima di poter utilizzare FCM per accedere al token di registrazione o ricevere messaggi, devi inizializzarlo.
Per inizializzare FCM, chiama
::firebase::messaging::Initialize
e fornisci l'oggetto ::firebase::App
e un'implementazione della
::firebase::messaging::Listener
classe.
MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);
Accedere al token di registrazione
Al primo avvio dell'app, l'FCM SDK genera un token di registrazione per l'istanza dell'app client. Se vuoi scegliere come target singoli dispositivi o creare gruppi di dispositivi per FCM, dovrai accedere a questo token.
Puoi accedere al valore del token tramite la
::firebase::messaging::Listener::OnTokenReceived
funzione virtuale.
void OnTokenReceived(const char* token) {
LogMessage("The registration token is `%s`", token);
// TODO: If necessary send token to application server.
}
Ricevere e gestire i messaggi
Per ricevere messaggi, la classe Listener deve implementare la
OnMessage
funzione virtuale.
Eseguire l'override di OnMessage
Eseguendo l'override del metodo ::firebase::messaging::Listener::OnMessage,
puoi eseguire azioni in base al messaggio ricevuto e ottenere i dati del messaggio
data:
void OnMessage(const ::firebase::messaging::Message& message) {
LogMessage(TAG, "From: %s", message.from.c_str());
LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}
I messaggi possono rappresentare diversi tipi di dati in entrata. Nella maggior parte dei casi, i messaggi vengono inviati all'app dopo essere stati avviati dallo sviluppatore. I messaggi vengono inviati anche all'app per rappresentare eventi di invio di messaggi, eventi di errore di invio di messaggi ed eventi di eliminazione di messaggi. Questi eventi speciali possono essere differenziati controllando il campo Message::message_type.
Messaggi eliminati
Vengono inviati all'app quando il FCM server elimina i messaggi in attesa.
Message::message_type sarà "deleted_messages". I messaggi potrebbero essere eliminati per i seguenti motivi:
Troppi messaggi memorizzati sul FCM server.
Ciò può accadere quando i server di un'app inviano una serie di messaggi non comprimibili ai server FCM mentre il dispositivo è offline.
Il dispositivo non è connesso da molto tempo e il server dell'app ha inviato di recente (nelle ultime 4 settimane) un messaggio all'app su quel dispositivo.
È consigliabile che l'app esegua una sincronizzazione completa con il server dell'app dopo aver ricevuto questa chiamata.