FCM は、メッセージを構築、転送、および受信する次の一連のコンポーネントに依存しています。
メッセージ要求を作成または構築するためのツール。 Notifications Composer は、通知要求を作成するための GUI ベースのオプションを提供します。すべてのメッセージ タイプを完全に自動化し、サポートするには、Firebase Admin SDK または FCM サーバー プロトコルをサポートする信頼できるサーバー環境でメッセージ リクエストを作成する必要があります。この環境は、Cloud Functions for Firebase、App Engine、または独自のアプリ サーバーである可能性があります。
FCM バックエンドは、(他の機能の中でも) メッセージ要求を受け入れ、トピックを介してメッセージのファンアウトを実行し、メッセージ ID などのメッセージ メタデータを生成します。
メッセージをターゲット デバイスにルーティングし、メッセージ配信を処理し、必要に応じてプラットフォーム固有の構成を適用するプラットフォーム レベルのトランスポート層。このトランスポート層には以下が含まれます。
- Google Play サービスを搭載した Android デバイス用の Android トランスポート層 (ATL)
- Apple デバイス用の Apple プッシュ通知サービス (APN)
Web アプリの Web プッシュ プロトコル
ユーザーのデバイス上の FCM SDK。通知が表示されるか、アプリのフォアグラウンド/バックグラウンド状態および関連するアプリケーション ロジックに従ってメッセージが処理されます。
ライフサイクルの流れ
- FCM からメッセージを受信するようにデバイスを登録します。クライアント アプリのインスタンスは、メッセージを受信するために登録し、アプリ インスタンスを一意に識別する登録トークンを取得します。
- ダウンストリーム メッセージを送受信します。
- メッセージを送ります。アプリ サーバーはクライアント アプリにメッセージを送信します。
- メッセージは Notifications Composer または信頼できる環境で作成され、メッセージ リクエストが FCM バックエンドに送信されます。
- FCM バックエンドはメッセージ リクエストを受信し、メッセージ ID とその他のメタデータを生成して、プラットフォーム固有のトランスポート層に送信します。
- デバイスがオンラインの場合、メッセージはプラットフォーム固有のトランスポート層を介してデバイスに送信されます。
- デバイスでは、クライアント アプリがメッセージまたは通知を受け取ります。
- メッセージを送ります。アプリ サーバーはクライアント アプリにメッセージを送信します。