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 のアドレスは以下のとおりです。
- GCM:https://github.com/googlesamples/google-services
- FCM:https://github.com/firebase/quickstart-android/tree/master/messaging
プッシュ通知のチュートリアルでは、それぞれこれらのサンプルアプリを Kii Cloud 用に改変した実装を使ってテストを行います。詳細はチュートリアルの解説(FCM、GCM)をご覧ください。
なお、FCM、GCM ともに、サンプルコードは Google からの配布時に Apache ライセンス 2.0 が適用されています。実際のモバイルアプリのスケルトンとしても利用できます。