Android
プッシュ通知
AndroidStudio
GooglePlay
FirebaseCloudMessaging

AndroidアプリにFirebase Cloud Messagingを実装する(1) - アプリとFirebaseを接続する

Firebase Cloud Messagingを使って、JavaでAndroidアプリにプッシュ通知を導入する方法についてまとめておきます。

Firebase Cloud Messagingって?

Firebase公式ドキュメントでは、FCMについて以下のように説明されています。端末にプッシュ通知を送るだけなら、そのためのフレームワークだと考えて貰って構わないと思います。

Firebase Cloud Messaging(FCM)は、メッセージを無料で確実に配信するためのクロスプラットフォーム メッセージング ソリューションです。

このエントリの目的

2つのエントリにわたって、以下いずれかの方法でAndroidアプリにメッセージを送信し、Androidアプリがメッセージを受信するまでを書きます。

  • Firebaseコンソールを使って特定の端末にメッセージを送信する
  • HTTPでGoogleが提供するFCMサーバーにリクエストをかけて、特定の端末にメッセージを送信する

本エントリでは、AndroidアプリとFirebaseプロジェクトを接続し、必要なビルド設定をアプリに適用するところまで書いています。

Firebase Assistantについて

Android Studioの「Firebase Assistant」という機能を使えば、かなり簡単にFCMをアプリに組み込むことができます。私は先日リリースされたAndroid Studio 3.0の正式版で初めて知りましたが、2.2の頃からあったそうです。
これまではFirebaseコンソールでアプリケーションを作成したり、build.gradleに色々設定を追加したり、設定ファイルをダウンロードしてプロジェクト内に追加したり…など色々面倒な作業が必要でしたが、今ではウィザードに従うだけで上記のような作業を全てやってくれます。これのおかげで、Google Cloud Messagingからの移行などではなく完全に新規でプッシュ通知を組み込むぶんには、実装のハードルはかなり低くなったと感じています。
英文を頑張って読み解いて必要な作業を全部自分でやっていたあの日が…(以下略)

環境

以下の環境を使って実施しています。

  • macOS High Sierra バージョン10.13.1
  • Android Studio 3.0

サンプル

Githubで公開しています。

https://github.com/outerlet/MessagingApp

実装手順

1.プロジェクトの準備

Android Studioを起動して、プロジェクトを作成します。もちろん、FCMが導入されていない既存のプロジェクトを使っても構いません。ここでは以下の通りに作成しておきます。

設定項目 設定値
アプリ名 MessagingApp
Target SDK Version 21 (Lollipop)
最初のActivity MainActivity(.java)

2.Firebase Assistantの起動

Android Studioのメニューから「Tools > Firebase」を選択すると起動します。
firebase_assistant01.png

3.Firebaseにログイン

Firebase Assistantのツール群から「Cloud Messaging」を選択して展開すると、「Set up Firebase Cloud Messaging」というリンクがあります。これをクリックすると、FCMの実装手順などが表示されます。
まず、Android StudioでFirebaseにログインする必要があります。『Connect to Firebase』というボタンをクリックしてください。
firebase_assistant02.png

ブラウザが起動し、GoogleからAndroid Studioに必要な権限を与えてよいかの確認が表示されます(下記)。問題なければ『許可』を押してください。なお、Googleにログインしていない場合はログイン画面が表示されます。ログインすると下記の画面に遷移します。
firebase_assistant03.png

『許可』を押すと以下の画面が表示され、Android Studioに戻るよう指示されます。
firebase_assistant04.png

4.FirebaseプロジェクトとAndroidアプリの接続

Android Studioに戻ると以下の画面が表示され、FirebaseプロジェクトとAndroidアプリを接続するよう求められます。
firebase_assistant05.png

  • 新規にFirebaseプロジェクトを作成する場合は『Create new Firebase project』をチェックし、その下に任意のプロジェクト名を入力します。
  • 既存のFirebaseプロジェクトを利用したい場合は、『Choose an existing Firebase or Google project』をチェックし、その下に表示される一覧から接続したいプロジェクトを選択してください。

終わったら『Connect to Firebase』をクリックします。Android StudioがFirebaseプロジェクトへの接続と各種セットアップを開始されます。
しばらく待つとAndroid Studioの右下にバルーンが表示され、タスクが完了したことを教えてくれます。

5.Firebaseのライブラリを設定

手順4を完了してFirebaseプロジェクトとAndroidアプリの接続が終わると、Firebase Assitantの表示が以下のように変わります。『Add FCM to your app』をクリックしてください。
firebase_assistant06.png

以下のダイアログが表示されます。『Accept Changes』をクリックすると必要なライブラリ設定がbuild.gradleに行われたあと、その内容がプロジェクトに反映(同期)されます。
firebase_assistant07.png

同期が完了すると、Firebase Assistantの表示は以下のようになります。build.gradleの内容を確認して、Firebaseの設定が追加されていることを確認してください。
firebase_assistant08.png

とりあえずまとめ

ここまでで、FirebaseプロジェクトとAndroidアプリを接続までが完了しました。
次はJavaに必要なコードを追加して、プッシュ通知を受信する内容について説明したいと思います。