在 Unity 客户端应用上接收消息

接收和处理消息

如需接收消息,您的应用必须为 Firebase.Messaging.FirebaseMessaging.MessageReceived 事件处理程序分配一个回调函数。

MessageReceived 事件

通过对将回调函数分配给 Firebase.Messaging.FirebaseMessaging.MessageReceived 进行重写,您可以根据接收到的消息执行操作并获取消息数据:

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

消息可用于表示不同种类的传入数据。在大多数情况下,消息会在开发者发起后发送至应用。此外,您的应用还会收到用于表示消息已发送事件、消息发送错误事件及消息已删除事件的消息。您可以通过检查 MessageType 字段来区分这些特殊事件。

消息已删除

当 FCM 服务器删除待处理消息时发送至您的应用。 MessageType 将是 "deleted_messages"。如果发生以下情况,消息可能会被删除:

  1. FCM 服务器上存储的消息过多。

    如果应用服务器在设备离线时向 FCM 服务器发送大量不可收起的消息,可能会出现这种情况。

  2. 设备长时间未连接,且应用服务器近期(过去 4 周内)向该设备上的应用发送了一条消息。

    建议在收到此调用后为应用执行与应用服务器的完全同步。

发送事件

当上行消息成功发送至 FCM 时调用。MessageType 将是 "send_event"

发送错误

当发送上行消息出错时调用。 MessageType 将是 "send_error"