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
プラグインと
構成ファイルをプロジェクトに追加する必要があります。
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.2.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 の使用に関するよくある質問を次に示します。
BoM で指定されたライブラリ バージョンをオーバーライドする方法は次のとおりです。
BoM プラットフォームをインポートするラインを維持します。
ライブラリの依存関係の行で、目的のライブラリ バージョンを指定します。たとえば、BoM で指定されているバージョンに関係なく App Indexing の v18.0.0 を使用したいが、認証と Cloud Firestore には BoM のバージョンを使用したい場合、依存関係を宣言する方法は次のとおりです。
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Declare the dependency for the App Indexing library and specify a version // This specified library version overrides the version designated in the BoM. implementation 'com.google.firebase:firebase-appindexing:18.0.0' // Declare the dependencies for the other Firebase libraries without specifying versions // These libraries will use the versions designated in the BoM. implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
いいえ。実際に Firebase ライブラリをアプリに追加して使用するには、各ライブラリをモジュール (アプリレベル) の Gradle ファイル(通常はapp/build.gradle
) で個別の依存関係行として宣言する必要があります。
BoM を使用すると、アプリ内のすべての Firebase ライブラリのバージョンに互換性があることが保証されますが、BoM はそれらの Firebase ライブラリをアプリに実際に追加するわけではありません。
はい!特定の Firebase ライブラリの依存関係行を宣言するときは、次のように KTX ライブラリ名を使用してください。
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.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-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' }
いいえ。Firebase Android BoM は、Firebase ライブラリのライブラリ バージョンのみを管理します。唯一の例外は、Firebase アプリでよく使用される Google Mobile Ads SDK を含めることです。
各 Firebase ライブラリは個別にバージョン管理されていますが、各ライブラリの最新リリースが他のライブラリと互換性があることを保証するために一緒にビルドされています。
BoM を使用してアプリの Firebase ライブラリのバージョンを管理することにより、Firebase ライブラリのどのバージョンが別の Firebase ライブラリと互換性があるかを追跡する必要がなくなります。
アプリで現在 1 つの Firebase ライブラリしか使用していない場合でも、BoM を使用することをお勧めします。別の Firebase ライブラリをいつ使用する必要があるか分からないからです。
はい、引き続き BoM を使用できます。 Gradle 5.0 以降では、BoM サポートが自動的に有効になります。ただし、以前のバージョンの Gradle では、BoM 機能を有効にして、少し異なる方法で BoM をインポートするだけで済みます。
settings.gradle
ファイルにenableFeaturePreview('IMPROVED_POM_SUPPORT')
を追加します。モジュール (アプリレベル) の Gradle ファイル(通常は
app/build.gradle
) に、次のように、通常のライブラリのように (platform
修飾子なしで) BoM をインポートします。dependencies { // Import the Firebase BoM implementation 'com.google.firebase:firebase-bom:31.2.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' }
GitHub の Firebase Android SDK リポジトリにアクセスしてください。
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.2.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 サインインなど) をデバイス上のアプリに提供する、目に見えないバックグラウンド サービス
- これらの共通 API を 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 を使用するためのサンプル コードとして使用できます。
その他の関心のあるトピック
- Google Play サービスでの Firebase Android SDK の依存関係
- Firebase アプリを Google Play にリンクする
- Play ゲーム サービス プロジェクトと統合する