ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

プッシュ通知配信のGCM/FCM移行対応について

f:id:mbaasblog:20180913201655p:plain

2019年4月のGCM(Google Cloud Messaging)廃止に伴い、先日 mobile backendではプッシュ通知機能がFCM(Firebase Cloud Messaging)対応されました!GCM廃止については、Android端末にプッシュ通知配信をされているすべてのお客様に対応していただく必要があります!!プッシュ通知はアプリにとって欠かせないものとなっており、早速FCM移行に取り組んでいただいている方が多いようです。今回は、ドキュメントだけでは分かりにくい、GCM/FCM平行稼働の設定方法について、図を交えてご説明させていただきます!

はじめに

GCMが廃止になるため、先日 mobile backend ではプッシュ通知でFCM(Firebase Cloud Messaging)対応を行いました。
また、それに伴いFCM対応されたSDKがリリースされました!

そのため、今まで mobile backend を利用して、Android端末にプッシュ通知配信を行っていた すべてのお客様は、GCMからFCMへ移行していただく必要がございます。

移行対応を行わない場合は、2019年3月以降、Android端末へのプッシュ通知配信が出来なくなってしまいますので、ご注意ください!

本ブログでは、 Android SDK を例に移行する際のパターンをご説明します。

【注意!】FCMとFirebaseプロジェクトについて

本題に入る前に、誤解されやすいポイントを紹介します!

お客様から

  • Android SDK v2系を利用しているけれど、Firebaseプロジェクトを使っているからFCM配信出来ているのでは?

というご質問を度々いただきます。
※Firebaseプロジェクトは、下記Firebase管理画面にて作成していただくプロジェクトを指します。 f:id:mbaasblog:20180925184052p:plain

Firebase上からサーバーキーや送信者IDを取得していたかと思いますが、
この手順によって、プッシュ通知配信がFCMによって実行されている訳ではございません!

こちらについては大変誤解を招きやすい点となっています。

mobile backendでは、SDK内でGCMを使うか、FCMを使うか設定がされております。
Android SDK v2系では、SDK内でGCMを使う設定がされております。
先日リリースしましたAndroid SDK v3系ではSDK内でFCMを使う設定がされております。
そのため、SDK v2系を利用し、mobile backendからプッシュ通知配信しているお客さまは、
GCMでプッシュ通知配信を行っているのです。

Firebaseプロジェクト自体は、mobile backendとGCM,FCMを紐づけるために使われているのです。

何を設定すれば良いのか?

皆様にFCM対応していただく必要があるとご説明しましたが、2019年3月までの間は、GCM,FCM両方をお使いいただけます。
ただ、GCM,FCM平行稼働中はお客様の状況によって設定方法が異なり、つまづきやすいポイントとなっています。
今回は、お客様の状況をパターン分けしてご説明させていただきます。

f:id:mbaasblog:20180926135408p:plain

【前提条件】

  • アプリバージョンについて
    • アプリバージョン v1.0:Android SDK v2系を利用して開発されたアプリ(=GCM対応アプリ)
    • アプリバージョン v2.0:Android SDK v3系を利用して開発されたアプリ(=FCM対応アプリ)
  • Firebaseプロジェクトについて
    • プロジェクトA:以前から利用しているプロジェクト
    • プロジェクトB:新規で作成したプロジェクト

【パターン① FCM対応前】GCMのみ利用している場合

パターン①は、Android SDK v3系がリリースされる前の状況となります。
言い換えると、Android SDK v2系を利用されているお客様の状況です。

f:id:mbaasblog:20180913201642p:plain

パターン①のお客様は、mobile backend上では、APIキーのみが設定されていると思います。
APIキーによって、GCM対応したアプリv1.0(mobile backend Android SDK v2系 使用)と、FirebaseのプロジェクトAが紐づけられ、GCMによってプッシュ通知が配信されます。

【パターン② GCM/FCM平行稼働】Firebaseプロジェクトを使いまわす場合

パターン②は、FCM対応のために Android SDK v3系を利用したアプリをリリースする際、
パターン①で利用しているFirebaseプロジェクトAを使いまわす際の状況です。

f:id:mbaasblog:20180921200429p:plain

パターン②のお客様は、mobile backend上では、パターン①のAPIキーに加え、FCMプッシュ通知設定ファイル(json)が設定されていると思います。

APIキーによって、GCM対応したアプリv1.0(mobile backend Android SDK v2系 使用)と、FirebaseのプロジェクトAが紐づけられ、アプリv1.0 にはGCMによってプッシュ通知が配信されます。

FCMプッシュ通知設定ファイル(json)によって、FCM対応したアプリv2.0(mobile backend Android SDK v3系 使用)と、FirebaseのプロジェクトAが紐づけられ、アプリv2.0 にはFCMによってプッシュ通知が配信されます。

パターン⑤のGCM廃止までに、アプリユーザーにはアプリv1.0からv2.0へのアップデートを促しましょう。

注意
パターン②の場合は、FirebaseプロジェクトAのFCM APIが有効化されているか、必ずご確認ください!
有効化についての詳細は、GCMからFCMの移行対応>・FCM APIの有効化 をご確認ください。

【パターン③ GCM/FCM平行稼働】Firebaseプロジェクトを新たに作成する場合

パターン③は、FCM対応のために Android SDK v3系を利用したアプリをリリースする際、
パターン①で利用しているFirebaseプロジェクトAとは別に、新しく別のプロジェクト、FirebaseプロジェクトBを作成する際の状況です。


f:id:mbaasblog:20180921202604p:plain

パターン③のお客様も、パターン②のお客様同様、mobile backend上では、パターン①のAPIキーに加え、FCMプッシュ通知設定ファイル(json)が設定されていると思います。

APIキーによって、GCM対応したアプリv1.0(mobile backend Android SDK v2系 使用)と、FirebaseのプロジェクトAが紐づけられ、アプリv1.0 にはGCMによってプッシュ通知が配信されます。

FCMプッシュ通知設定ファイル(json)によって、FCM対応したアプリv2.0(mobile backend Android SDK v3系 使用)と、FirebaseのプロジェクトBが紐づけられ、アプリv2.0 にはFCMによってプッシュ通知が配信されます。

パターン⑤のGCM廃止までに、アプリユーザーにはアプリv1.0からv2.0へのアップデートを促しましょう。

【パターン④ GCM/FCM平行稼働】FCMのみ利用する場合

パターン④のお客様は、平行稼働中にFCMのみ利用されている状況です。
平行稼働中にGCM利用を早めに切り上げるお客様や、新規でmobile backendを利用される方が当てはまります。
使用されているFirebaseプロジェクトはお客様によってA,Bどちらのパターンもあるかと思います。

f:id:mbaasblog:20180921205417p:plain

注意
平行稼働期間中にFCMのみ利用される場合は、FirebaseプロジェクトA,BどちらであってもAPIキー、FCMプッシュ通知設定ファイル両方の設定が必要です!
また、FirebaseプロジェクトAの方は、パターン②記載の通り、FCM APIが有効化されているか確認していただく必要があります。

ここで、前段のパターン②,③を読んでいただいた方の中には、
FCM利用のみの場合はAPIキーの設定は不要なのではないか?と考えた方もいらっしゃると思います。
実はこの後記載します【パターン⑤⑥ GCM対応終了】の場合は、APIキーの設定が不要となり、FCMプッシュ通知設定ファイルのみの設定でOKとなります。
ただし、FCM/GCM平行稼働中は、平行稼働出来る実装がされている影響によって、必ずAPIキーの設定が必須となります。

【パターン⑤ GCM対応終了】

パターン⑤は2019年3月以降の状況です。

f:id:mbaasblog:20180921204453p:plain

GCM廃止後は、FCMプッシュ通知設定ファイルのみの設定で、FCMを利用したプッシュ通知配信が可能となります!
※APIキー設定項目は無くなる予定です。

なお、パターン①②③のアプリv1.0には、プッシュ通知が配信されなくなります。

最後に

GCM,FCM平行稼働期間中は、両方を利用してプッシュ通知を配信することが可能です。
ただし、GCM廃止後は、アプリv1.0を利用しているアプリユーザーにはプッシュ通知が届かなくなってしまいます。
GCM廃止後も変わらず、多くのアプリユーザーにプッシュ通知を届けるためにも、
早めにFCM対応を行っていただき、アプリv2.0へのアップデートを促していただければと思います!


なお、GCM廃止の詳細スケジュール等は、
随時informationブログにてお知らせいたしますので、あわせてご確認よろしくお願いいたします!
お知らせ | ニフクラ mobile backend

f:id:mbaasdevrel:20171121093954p:plain

山上慶子

ニフクラ mobile backend 技術担当。
mobile backendを多くの人に使っていただけるよう、頑張ります!