このガイドでは、メッセージを確実に受信できるように、モバイル クライアント アプリとウェブ クライアント アプリで Firebase Cloud Messaging を設定する方法について説明します。
メッセージを受信するには、アプリで 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);
}
メッセージは、さまざまな種類の受信データを表します。大半のメッセージは、デベロッパーが主体的にアプリに送信するものです。一方で、メッセージ送信イベント、メッセージ送信エラーイベント、メッセージ削除イベントを表すメッセージもアプリに送信されます。これらの特別なイベントは、Message::message_type
フィールドで見分けることができます。
メッセージ削除
FCM サーバーが保留中のメッセージを削除したときに、アプリに送信されます。Message::message_type
が "deleted_messages"
になります。メッセージは、次の理由で削除されることがあります。
FCM サーバーに格納されているメッセージが多すぎる場合。
デバイスがオフラインのときに、アプリのサーバーが折りたたみ不可のメッセージを FCM サーバーに大量に送信すると、この問題が発生します。
アプリサーバーが、長時間接続されていないデバイスのアプリに最近(過去 4 週間以内)メッセージを送信した場合。
この呼び出しの受信後に、アプリとアプリサーバーとの完全同期を行うことをおすすめします。
イベント送信
アップストリーム メッセージが FCM に正常に送信されたときに呼び出されます。MessageType
が "send_event"
になります。
送信エラー
アップストリーム メッセージの送信中にエラーが発生すると、呼び出されます。MessageType
が "send_error"
になります。