FCM の利用

Kii Cloud で FCM を使ったプッシュ通知を利用するため、以下の点を理解しておくことが適切です。

より詳細な情報は、Firebase のドキュメント を参照してください。

FCM の利用者の識別

FCM を使ってプッシュ通知を実現するため、開発者は Firebase コンソールからプロジェクトを作成し、割り当てられた Server key と送信者 ID を取得します。

FCM では、FCM を利用するユーザーアプリを FCM のプロジェクトの単位で管理しており、Server key と送信者 ID を使って識別します。

  • Server key

    Server key は、開発者のサーバーアプリケーションを識別するためのキーです。

    Server key は、開発者ポータルから Kii Cloud に登録します。Kii Cloud からプッシュ通知を行う際は、登録されている Server key を使って FCM サーバーにプッシュ通知のリクエストを行います。

    なお、Firebase の Server key は、開発者ポータルでは GCM API キーとして参照します。Kii Cloud では GCM と FCM を同じ扱いで処理します。

  • 送信者 ID

    送信者 ID は開発者のモバイルアプリから FCM 上のプロジェクトを識別するためのキーです。

    送信者 ID は、Firebase コンソールからダウンロードできる google-services.json に含まれており、Android Studio 上でモバイルアプリのビルド時に指定します。モバイルアプリ内に組み込まれた Firebase のライブラリーは、送信者 ID を使ってモバイルアプリ側の制御を行います。

    Monaca プラグインで FCM を使用する場合は google-service.json を使わず、送信者 ID を直接指定しますが、仕組みはネイティブアプリで FCM を使用する場合と同様です。

プッシュ通知の受信

モバイルアプリでプッシュ通知を受信するには、FCM と Google Play services のライブラリーを組み込んでモバイルアプリを構築します。

プッシュ通知の受信処理には、Android のサービスが利用されます。FCM ライブラリーでのプッシュ通知の受信処理や、モバイルアプリでの受信ハンドラーは、いずれもサービスを使って実装されるため、モバイルアプリがフォアグラウンドにない状態や、起動していない状態であっても、プッシュ通知の受信処理を実行することができます。

プッシュ通知は、AndroidManifest.xml に従って処理されます。FCM のライブラリーでプッシュ通知が受信され、最終的に FirebaseMessagingService のサブクラスに転送されます。開発者は、FirebaseMessagingService のサブクラスに、モバイルアプリで必要な機能を作り込みます。

なお、FCM のライブラリーは AndroidManifest.xml の設定を利用しますが、この設定は AndroidManifest.xml のマージ機能によってビルド時に自動的に書き換えられます。開発者の側で AndroidManifest.xml を詳細に設定する必要ありません。

FCM を利用するため、Google Play services が必要です。モバイルアプリにライブラリーを組み込んだうえで、デバイス上に Google Play 開発者サービスがインストールされている必要があります。

モバイルアプリが受け取るプッシュメッセージは、JSON 形式のデータです。メッセージには、FCM で定められたフィールドの他、アプリケーションで定義したカスタムデータを含めることもできます。

FCM/GCM のサンプルコード

FCM と GCM では、それぞれサンプルアプリを公開しています。GitHub のアドレスは以下のとおりです。

プッシュ通知のチュートリアルでは、それぞれこれらのサンプルアプリを Kii Cloud 用に改変した実装を使ってテストを行います。詳細はチュートリアルの解説(FCMGCM)をご覧ください。

なお、FCM、GCM ともに、サンプルコードは Google からの配布時に Apache ライセンス 2.0 が適用されています。実際のモバイルアプリのスケルトンとしても利用できます。