Android StudioでFirebaseを利用する

日本時間で2016年5月19日より、Google Firebaseの提供が開始されましたので、概要と利用方法、注意点などを、短めにまとめます。


【1】Firebaseとは

  • モバイル開発にて、プッシュ通知やアクセス解析など主にバックグランド面を担うサービス(MBaaSとも)
  • 元々はアメリカ・サンフランシスコの同名の会社が2011年より提供していたが、2014年にGoogleに出資を受け、子会社化したもの
    wikipedia
  • Google傘下としてのモバイル開発環境の本格提供開始に伴い、Google Analytics(GA)やAdMob、Google Cloud Messaging(GCM)などの管理をGoogle Developのプロジェクト単位で統括可能となるもの

 

【2】Firebaseを利用するメリット

  • GAやAdMobの管理がFirebase一箇所で可能(2016/05/21時点では、AdMobは当該AdMob管理ページへのリンクのみ)
  • Android開発時、GAやAdMob利用に伴うAndroidManifest.xmlへのmetaやactivity、service等の設定が必要なくなる
  • これまでのgoogle-play-servicesライブラリ利用時とは異なり、ライブラリ利用に際して、利用者のユーザIDを参照する権限が自動的に付与されない
    以前の記事も参照)
  • 既存の GAやAdMobのIDともリンクさせることが可能

 

【3】Firebaseを利用するデメリット

  • 既存のAdMobやGAとのリンクを行う際、リンク設定を誤ると修正がきかない
    (最悪の場合、Googleプロジェクトや内包するアプリ情報の削除、またGAやAdMobのID新規作成が必要)

【4】Android Studioへの実装方法

■確認環境

  • Max OS X El Capitan (10.11.5)
  • java version 1.7.0_79
  • Android Studio 2.1.1

■実装の流れ

  1. Firebaseの利用開始
  2. Google Develop上でのプロジェクトとアプリ情報の作成
  3. AdMobの広告ID作成(利用する場合)
  4. Firebaseのアプリ管理ページより、google-services.jsonファイルを取得し、Android Studioのプロジェクト内に配置
  5. 各種ライブラリとのリンク、およびbuild.gradleへの設定記述

 

【5】Android Studioへの実装(例)

  1. Firebaseの利用開始
    まずは、Firebaseを利用可能な状態にすべく、自身のGoogleアカウントでFirebaseの利用開始を行います。
    https://firebase.google.com/
    Firebase_01

    尚、Firebaseの価格体系については、AnalyticsとGCMに代わるFCM(Firebase Cloud Messaging)などは無料となっています。
    002
  2. Google Develo上でのプロジェクトとアプリ情報の作成
    Firebaseへログイン後の管理コンソールから操作します。まずは、Firebase管理コンソールの右上部分より、「新規プロジェクト作成」を選択。

    プロジェクト自体を初めて作成する場合は、新規にプロジェクトを作成するメッセージボタンが表示されますので、クリックします。
    003
    上記画像で灰色の部分は、追加したプロジェクト名やアプリのサマリーなどが記載されます。次に、アプリを追加します。

    アプリの追加は、作成したプロジェクトを選択した後に表示される「アプリを追加」ボタンから実施します。
    firebase_004

    「アプリ追加」を実施すると、アプリのプラットフォームを選択する画面が表示されますので、開発対象アプリのものを選択します。
    firebase_005

    次に、パッケージ名やBundle IDを設定する画面が表示されますので、開発するアプリのものを入力します。
    firebase_006

    入力して次に行くと、設定した内容を反映したgoogle-services.jsonのダウンロードが開始されますので、任意の場所に保存します。
    (後ほどダウンロードも可能。詳しくは手順4.を参照)
    firebase_007

    最後に、各種IDE向けの導入方法が簡単に紹介されますので、これに従い後ほど設定します。
    (画面はAndroidアプリを追加した時のもの)
    firebase_008

  3. AdMobの広告ID作成(利用する場合)
    本記事の内容とは異なるため手順の紹介は割愛します。ただ、AdMob上でアプリ情報を作成する際に、Firebase上で作成したアプリ情報とリンクするかを尋ねられるようになりましたので、パッケージ名やBundle IDを入力して、上記2.にて作成したアプリ情報とリンクします。
  4. Firebaseのアプリ管理ページより、google-services.jsonファイルを取得し、Android Studioのプロジェクト内に配置
    上記2.でのアプリ追加時にもダウンロード可能ですが、追加後に改めてダウンロードすることもできます。改めてダウンロードするには、
    Firebase上のプロジェクトTOP
    → 各アプリサマリー部分の右上メニュークリック
    → 「管理」を選択
    と辿ることで可能です。Android Studioのプロジェクトにgoogle-services.jsonを配置するには、Android StudioのProjectペインを「Project」に変更した後、「app」直下にgoogle-services.jsonをペーストすればOKです。
    firebase_009
  5. 各種ライブラリとのリンク、およびbuild.gradleへの設定記述
    詳細な手順は公式ドキュメントを参照していただくとして、ここでは流れのみを説明します。
    尚、以下はAndroid Studioを利用する場合の手順です。Xcode等、他のIDEについては、公式ドキュメントをご参照ください。

    ・プロジェクト全体のbuild.gradleに、google-servicesへのclass pathを通す

    ・アプリのbuild.gradleに、参照ライブラリと利用プラグインの追加設定を行う


ここまでの設定で、AndroidManifest.xml上で特に設定することなく、AnalyticsとAdMobが利用可能となります。

が、下記にご注意ください。

 

【注意点】

  • AdMobを利用する場合、レイアウトXML上に直接記述したAdViewでないと広告が表示されない
    → これまで、AdMob周辺の実装は、AdViewをソースコード上で動的に作成して反映させる自作のライブラリで行っていました。
    しかし、Firebaseのライブラリを組み込んだ場合、レイアウトXML上に直接記述したAdViewを用いないと広告が反映されないようです
    詳細は要検証ですが、Firebaseになる以前のgoogle-serveicesライブラリのリンクおよびgoogle-play-services.jarを参照する方法では動的にAdViewを作成する方法でも広告が表示されたため、Firebaseへの変更に伴うものではないかと考えています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です