Ricevere messaggi utilizzando Firebase Cloud Messaging

Questa guida descrive come configurare Firebase Cloud Messaging nelle tue app client web e mobile in modo da poter ricevere messaggi in modo affidabile.

Per ricevere messaggi, l'app deve assegnare un callback al gestore eventi Firebase.Messaging.FirebaseMessaging.MessageReceived.

MessageReceived evento

Se esegui l'override dell'assegnazione di un callback a Firebase.Messaging.FirebaseMessaging.MessageReceived, puoi eseguire azioni in base al messaggio ricevuto e ottenere i dati del messaggio:

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
  UnityEngine.Debug.Log("From: " + e.Message.From);
  UnityEngine.Debug.Log("Message ID: " + e.Message.MessageId);
}

I messaggi possono rappresentare diversi tipi di dati in entrata. Più comunemente, i messaggi vengono inviati all'app dopo essere stati avviati dallo sviluppatore. I messaggi vengono inviati anche alla tua app per rappresentare gli eventi di invio dei messaggi, gli eventi di errore di invio dei messaggi e gli eventi di eliminazione dei messaggi. Questi eventi speciali possono essere distinti controllando il campo Message::message_type.

Messaggi eliminati

Inviato alla tua app quando il server FCM elimina i messaggi in attesa. Message::message_type sarà "deleted_messages". I messaggi possono essere eliminati per i seguenti motivi:

  1. Troppi messaggi memorizzati sul server FCM.

    Ciò può verificarsi quando i server di un'app inviano una serie di messaggi non comprimibili ai server FCM mentre il dispositivo è offline.

  2. Il dispositivo non si connette da molto tempo e il server dell'app ha inviato di recente (nelle ultime 4 settimane) un messaggio all'app su quel dispositivo.

    Ti consigliamo di eseguire una sincronizzazione completa con il server dell'app dopo aver ricevuto questa chiamata.

Invia evento

Chiamato quando un messaggio upstream è stato inviato correttamente a FCM. MessageType sarà "send_event".

Errore di invio

Chiamato quando si è verificato un errore durante l'invio di un messaggio upstream. MessageType sarà "send_error".