Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

AndroidとFirebaseの詳細

Firebase を使用して Android プロジェクトを開発していると、なじみのない、または Firebase に固有の概念を発見することがあります。このページは、これらの質問に答えたり、詳細を学ぶためのリソースを紹介したりすることを目的としています.

このページに記載されていないトピックについて質問がある場合は、お気軽にオンライン コミュニティにアクセスしてください。また、このページは定期的に新しいトピックで更新されますので、知りたいトピックが追加されているかどうかを確認してください。

Android Studio 用の Firebase Assistant プラグイン

Firebase Assistant は、Android アプリを Firebase プロジェクトに登録し、必要な Firebase 構成ファイル、プラグイン、および依存関係を Android プロジェクトに追加する Android Studio プラグインです。これらはすべて Android Studio 内から実行できます。

Firebase Assistant を使用するには、 Android の入門ページの手順に従ってください。 Android Studio と Firebase Assistant の両方の最新バージョンを使用していることを確認します ( [ファイル] > [アップデートの確認] に移動します)。

アプリに追加する特定の Firebase プロダクトを選択すると、Firebase Assistant はapp/build.gradleファイルで必要な依存関係を自動的に宣言します。ただし、Firebase Assistant の現在の機能を超える Firebase 機能を使用するには、これらの依存関係を手動で変更する必要がある場合があります。

  • Firebase Android BoMを使用する場合は、モジュール (アプリレベル) の Gradle ファイル(通常はapp/build.gradle ) の依存関係を更新して、BoM プラットフォームをインポートします。また、各 Firebase ライブラリの依存関係の行からバージョンを削除する必要があります。

  • Kotlin 拡張ライブラリを使用する場合は、モジュール (アプリ レベル) の Gradle ファイル(通常はapp/build.gradle ) に追加された依存関係の行を変更して、代わりに Firebase ライブラリのktxバージョンを使用します。

Google サービス - プラグインと構成ファイル

Firebase を Android プロジェクトに追加する一環として、 google-servicesプラグインとgoogle-services.json構成ファイルをプロジェクトに追加する必要があります。

Firebase コンソール管理 REST API 、またはFirebase CLIを使用して Android プロジェクトに Firebase を追加する場合は、プラグインと構成ファイルをプロジェクトに手動で追加する必要があります。ただし、 Firebase Assistantを使用する場合、これらのタスクはセットアップ中に自動的に実行されます。

Google サービスのプラグインと構成ファイルがどのように連携するかについては、 Android のドキュメントをご覧ください。

Firebase Android BoM (部品表)

Firebase Android BoM (Bill of Materials) を使用すると、1 つのバージョン (BoM のバージョン) のみを指定するだけで、Firebase ライブラリのすべてのバージョンを管理できます。

アプリで Firebase BoM を使用すると、BoM は、BoM のバージョンにマッピングされた個々のライブラリ バージョンを自動的に取り込みます。個々のライブラリ バージョンはすべて互換性があります。アプリで BoM のバージョンを更新すると、アプリで使用するすべての Firebase ライブラリが、その BoM バージョンにマッピングされたバージョンに更新されます。

どの Firebase ライブラリ バージョンが特定の BoM バージョンにマッピングされているかを確認するには、その BoM バージョンのリリース ノートを確認してください。ある BoM バージョンにマップされたライブラリ バージョンを別の BoM バージョンと比較する必要がある場合は、以下の比較ウィジェットを使用します。

BoM プラットフォームに対する Gradle のサポートの詳細については、こちらをご覧ください。

Firebase Android BoM を使用して、モジュール (アプリレベル) の Gradle ファイル(通常はapp/build.gradle ) で依存関係を宣言する方法は次のとおりです。 BoM を使用する場合、依存関係の行で個々のライブラリ バージョンを指定しません。

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:31.1.0')

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

Firebase Android BoM の使用に関するよくある質問を次に示します。

Firebase BoM のバージョンを比較する

Kotlin 拡張機能 (KTX) ライブラリ

Firebase Kotlin 拡張機能 (KTX) ライブラリは、美しい慣用的な Kotlin コードを記述できる基本 Firebase SDK の小さなコンパニオンです。

アプリで KTX ライブラリを使用するには、依存関係を変更して-ktxサフィックスを含めます。各 KTX ライブラリは自動的にベース ライブラリに依存するため、両方の依存関係をアプリに含める必要はありません。

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:31.1.0')

  // Declare the base library
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX library instead (which automatically has a dependency on the base library)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

各 KTX ライブラリは、基本ライブラリのさまざまな構文拡張を提供します。たとえば、Analytics KTX ライブラリを使用すると、イベントのログ記録が簡単になります。

(基本ライブラリを使用)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

(代わりに KTX ライブラリを使用)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

Firebase ML と App Indexing を除くすべての Firebase 製品でKTX ライブラリが提供されます。

まだお持ちでない場合は、KTX ライブラリのAPI リファレンス ドキュメントをご覧ください。

機能モジュールと Play Feature Delivery

2021 年 5 月 (Firebase BoM v28.0.0) の時点で、基本アプリケーション モジュールとは別にインストールされる動的機能モジュールで Firebase Android SDK を使用できます。

動的機能モジュールのサポートを有効にするには、ベースモジュールのbuild.gradleファイルに次の依存関係を追加します。

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

動的モジュールのサポートを追加したので、Firebase SDK の依存関係 (Firebase BoM の有無にかかわらず) をアプリの機能モジュールに追加して、通常どおりに使用できます。

たとえば、アプリケーションが Realtime Database を使用して特定のリアルタイム機能を強化する場合、基本モジュールではなく機能モジュールのbuild.gradleに firebase firebase-database依存関係を追加できます。これにより、ほとんどのユーザーのダウンロード サイズが減少します。

機能モジュールで Firebase SDK を使用する場合は、次の注意事項に注意してください。

  • Analytics のfirst_openイベントに依存する Dynamic Links や Firebase In-App Messaging などの製品は、動的機能モジュールで使用されると、このイベントを見逃す可能性があります。

  • Cloud Firestore と Authentication を一緒に使用する場合は、常に両方を同じモジュールに含める必要があります。これが不可能な場合は、Authentication が Cloud Firestore の前に読み込まれるようにしてください。そうしないと、一部の Cloud Firestore オペレーションの認証状態が正しくない可能性があります。

  • firebase-crashlytics-ndkを動的機能モジュールの依存関係として使用する場合、 Crashlytics NDK ドキュメントで説明されているように、アプリのbuild.gradleファイルでunstrippedNativeLibsDirプロパティを設定する必要があります。

フィーチャー モジュールと Play フィーチャー デリバリーの詳細については、Play フィーチャー デリバリーの概要 を参照してください。

Google サービス Gradle プラグイン vs Google Play サービス vs Google Play ストア

Google、Firebase、および Android エコシステムのいくつかの部分には、同様の命名規則があります。それぞれの簡単な説明は次のとおりです。

Google サービス Gradle プラグイン
ビルド時に実行される Gradle プラグイン ( com.google.gms.google-services ) は、アプリが Firebase と Google API にアクセスするための適切な構成を持っていることを確認します。
その名前にもかかわらず、このプラグインは Google Play サービス (次のエントリを参照) とは関係がなく、実行時のアプリの機能には影響しません。
このプラグインは、Firebase の設定の一環としてアプリに追加するgoogle-services.jsonファイルも処理します。 Google サービスの Gradle プラグインについて詳しくは、こちらをご覧ください。
Google Play サービス
Android デバイス上で実行され、複数の一般的な Google API (Google マップや Google サインインなど) をデバイス上のアプリに提供する、目に見えないバックグラウンド サービス
これらの共通 A​​PI を 1 つのサービスに一元化することで、他のアプリのサイズを縮小し、デバイスが OS の更新なしで自動セキュリティ更新と機能拡張を受信できるようにします。 Google Play サービスの詳細については、こちらをご覧ください。
Google Playストア
アプリ、映画、書籍などを Android デバイスにダウンロードするためのストア
開発者は、Google Play Console を介してアプリの配布、リリースなどを管理します。デバイスに Google Play ストアがある場合、Google Play サービスも実行されています (前のエントリを参照)。デベロッパー向け Google Play ストアの詳細については、こちらをご覧ください。
Google Play ゲーム サービス
モバイルゲーム開発者向けの一連の API
Google Play ゲーム サービスの詳細と、Firebase を Google Play ゲーム サービス プロジェクトに統合する方法をご覧ください。

Firebase Android SDK のオープンソース リソース

Firebase はオープンソース開発をサポートしており、コミュニティへの貢献とフィードバックを奨励しています。

Firebase Android SDK

ほとんどの Firebase Android SDK は、公開されているFirebase GitHub リポジトリでオープン ソース ライブラリとして開発されています。残りの非公開で開発された Firebase ライブラリをパブリック GitHub にすぐに移行するために積極的に取り組んでいます。

クイックスタート サンプル

Firebase は、Android 上のほとんどの Firebase API のクイックスタート サンプルのコレクションを保持しています。これらのクイックスタートは、公開されているFirebase GitHub クイックスタート リポジトリで見つけてください。

各クイックスタートを Android Studio プロジェクトとして開き、モバイル デバイスまたは仮想デバイス (AVD) で実行できます。または、これらのクイックスタートを、Firebase SDK を使用するためのサンプル コードとして使用できます。

その他の関心のあるトピック