Receber mensagens usando o Firebase Cloud Messaging

Este guia descreve como configurar o Firebase Cloud Messaging nos seus apps cliente para dispositivos móveis e Web para que você possa receber mensagens de forma confiável.

Para receber mensagens, seu app precisa atribuir um callback ao manipulador de eventos Firebase.Messaging.FirebaseMessaging.MessageReceived.

MessageReceived evento

Ao modificar a atribuição de um callback para Firebase.Messaging.FirebaseMessaging.MessageReceived, você pode executar ações com base na mensagem recebida e receber os dados da mensagem:

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

As mensagens podem representar diferentes tipos de dados recebidos. Geralmente, as mensagens são enviadas para o app após serem iniciadas pelo desenvolvedor. Elas também são enviadas ao seu app para representar eventos relacionados a mensagens enviadas, a erros de envio de mensagem e também a mensagens excluídas. Marque o campo Message::message_type para diferenciar esses eventos especiais.

Mensagens excluídas

Enviadas para seu app quando o servidor do FCM exclui as mensagens pendentes. Message::message_type será "deleted_messages". As mensagens podem ser excluídas devido aos seguintes fatores:

  1. Há muitas mensagens armazenadas no servidor do FCM.

    Isso pode ocorrer quando os servidores de um app enviam muitas mensagens não recolhíveis para servidores do FCM enquanto o dispositivo está off-line.

  2. O dispositivo ficou muito tempo sem se conectar, e o servidor do app enviou uma mensagem recentemente (nas últimas quatro semanas) ao app nesse dispositivo.

    Recomenda-se que o app realize uma sincronização total com o servidor depois de receber essa chamada.

Evento "send"

Chamado quando uma mensagem upstream é enviada com sucesso para o FCM. MessageType será "send_event".

Erro de envio

Chamado quando há um erro ao enviar uma mensagem upstream. MessageType será "send_error".