4.4. GCM から FCM への移行¶
4.4.1. プロジェクトの移行¶
また、実装変更を行う前に、Firebase コンソールにアクセスし、旧 Google プロジェクトを Firebase プロジェクトにインポートしておく 必要があります。インポートした場合、「API(GCM)キー」は変更されずそのまま「サーバーキー」に移行されます。
詳細は サービスアカウントキーの取得手順 を参照してください。
4.4.2. 実装変更手順¶
GCM 3.0 を使用していたアプリを FCM に移行する際の実装変更手順は、 Migrate a GCM Client App for Android to Firebase Cloud Messaging に記載されていますので、こちらを参照してください。
手順の概要は以下のとおりです。
- build.gradle の dependencies に記述するライブラリを変更する。
- GCM で使用していた Permission をすべて削除する。
- AndroidManifest から BroadcastReceiver の記述を削除する。
- Registration 処理を削除する。
- InstanceIDListenerService を移行する (AndroidManifest記述変更、FirebaseInstanceIdService への置き換え)
- GcmListenerService を移行する (AndroidManifest の記述変更、FirebaseMessagingService への置き換え)
GCM 2.0 からの移行の場合は以下のような差異があります。
- InstanceIDListenerService, GcmListenerService は GCM 2.0 以前には存在しない。
- GCM 2.0 では独自に BroadcastReceiver と IntentService の実装が必要だったが、これは不要になるため削除する。
- IntentService が行っていたメッセージ受信処理は FirebaseMessagingService に移行する。
4.4.3. モバイルバックエンド基盤固有の手順¶
Registration 処理と InstanceIDListenerService についてはモバイルバックエンド基盤固有の手順があります。
GCM では Registration を行うための処理を NbGcmPushInstallation.register() で行っていましたが、この処理は不要となりますので削除してください。
代わりに Registration ID の通知を受けて MBaaS サーバに通知する処理の追加が必要になります。 具体的には FirebaseInstanceIdService を継承したサービスの実装が新たに必要になります。
手順は Registration Token の受信・保存とモバイルバックエンド基盤サーバへの登録 を参照してください。