サーバー環境と FCM

Firebase Cloud Messaging のサーバー側は、次の 2 つのコンポーネントで構成されます。

  • Google が提供する FCM バックエンド
  • サーバー側ロジックを実行するアプリサーバーやその他の信頼できるサーバー環境(Google によって管理される Cloud Functions for Firebase やその他のクラウド環境など)。

アプリサーバーや信頼できるサーバー環境は、FCM バックエンドにメッセージ リクエストを送信し、FCM バックエンドからユーザーのデバイスで実行されているクライアント アプリにメッセージがルーティングされます。

信頼できるサーバー環境の要件

アプリサーバー環境は次の条件を満たしている必要があります。

  • 適切にフォーマットされたメッセージ リクエストを FCM バックエンドに送信できること。
  • リクエストを処理し、指数バックオフを使用して再送信できること。
  • サーバーの認証情報とクライアント登録トークンを安全に保存できること。

サーバー オプションの選択

FCM サーバーとの対話には Firebase Admin SDK または未加工のプロトコルの 2 つの方法があり、どちらを使用するか決定する必要があります。一般的なプログラミング言語で広くサポートされていること、認証や認可を簡単に処理できることから、Firebase Admin SDK を使用することをおすすめします。

FCM サーバーと対話するためのオプションは次のとおりです。

Firebase Admin SDKFCM

Admin FCM API は、バックエンドによる認証を処理し、メッセージの送信とトピック登録の管理を容易にします。Firebase Admin SDK を使用すると、次のことができます。

  • 個々のデバイスにメッセージを送信する
  • トピックや 1 つ以上のトピックに一致する条件文にメッセージを送信する
  • トピックに対してデバイスの登録と登録解除を行う
  • ターゲット プラットフォームの種類に合わせたメッセージ ペイロードを作成する

Admin Node.js SDK には、デバイス グループにメッセージを送信するための方法が用意されています。

Firebase Admin SDK を設定するには、サーバーに Firebase Admin SDK を追加するをご覧ください。Firebase プロジェクトがすでに存在する場合は、まず SDK の追加を行ってください。また、プロジェクトの Cloud Messaging の設定ページで、Cloud Messaging API を有効にしておいてください。Firebase Admin SDK をインストールしたら、送信リクエストを作成するためのロジックの記述を開始できます。

FCM サーバー プロトコル

FCM は、未加工のサーバー プロトコルを使用するデベロッパー向けに FCM HTTP v1 API を提供しています。

メッセージを送信するために、アプリサーバーは HTTP ヘッダーと、JSON Key-Value ペアで構成される HTTP 本文とを含む POST リクエストを発行します。ヘッダーと本文のオプションの詳細については、アプリサーバーの送信リクエストの作成を参照してください。