Catch up on highlights from Firebase at Google I/O 2023. Learn more

詳細了解 Android 和 Firebase

當您使用 Firebase 開發 Android 項目時,您可能會發現一些不熟悉或特定於 Firebase 的概念。此頁面旨在回答這些問題或為您提供資源以了解更多信息。

如果您對本頁未涵蓋的主題有任何疑問,請隨時訪問我們的在線社區之一。我們還會定期使用新主題更新此頁面,因此請回來查看我們是否添加了您想要了解的主題!

適用於 Android Studio 的 Firebase 助手插件

Firebase Assistant 是一個 Android Studio 插件,可將您的 Android 應用程序註冊到 Firebase 項目,並將必要的 Firebase 配置文件、插件和依賴項添加到您的 Android 項目——所有這些都在 Android Studio 中完成!

按照Android 入門頁面中的說明使用 Firebase 助手。確保您使用的是最新版本的 Android Studio 和 Firebase 助手(轉到File > Check for updates )。

當您選擇特定的 Firebase 產品添加到您的應用程序時,Firebase 助手會自動在您的app/build.gradle文件中聲明所需的依賴項。但是,要使用 Firebase 助手當前功能之外的 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 控制台Management REST APIFirebase CLI將 Firebase 添加到您的 Android 項目,您必須手動將插件和配置文件添加到您的項目。但是,如果您使用Firebase 助手,這些任務會在設置期間自動為您完成。

訪問Android 文檔以了解 Google 服務插件和配置文件如何協同工作。

Firebase Android BoM(物料清單)

Firebase Android BoM(物料清單)使您能夠通過僅指定一個版本(BoM 的版本)來管理所有 Firebase 庫版本。

當您在應用中使用 Firebase BoM 時,BoM 會自動提取映射到 BoM 版本的各個庫版本。所有單獨的庫版本都將兼容。當您更新應用中的 BoM 版本時,您在應用中使用的所有 Firebase 庫都將更新為映射到該 BoM 版本的版本。

要了解哪些 Firebase 庫版本映射到特定的 BoM 版本,請查看該 BoM 版本的發行說明。如果您需要將映射到一個 BoM 版本的庫版本與另一個 BoM 版本進行比較,請使用下面的比較小部件

詳細了解Gradle 對 BoM 平台的支持

以下是如何使用 Firebase Android BoM 在模塊(應用程序級)Gradle 文件(通常app/build.gradle )中聲明依賴項。使用 BoM 時,您無需在依賴行中指定各個庫版本。

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:32.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) 庫是基本 Firebase SDK 的小伙伴,可讓您編寫美觀且慣用的 Kotlin 代碼。

要在您的應用程序中使用 KTX 庫,請更改您的依賴項以包含-ktx後綴。每個 KTX 庫都自動依賴於基礎庫,因此無需在您的應用程序中包含這兩個依賴項。

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:32.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)添加到應用程序的功能模塊中,並像往常一樣使用它們。

例如,如果您的應用程序使用實時數據庫來支持特定的實時功能,您可以將firebase-database依賴項添加到功能模塊的build.gradle而不是基本模塊。這將減少大多數用戶的下載大小。

在功能模塊中使用 Firebase SDK 時請注意以下注意事項:

  • 動態鏈接或 Firebase 應用內消息等依賴於 Analytics first_open事件的產品在動態功能模塊中使用時可能會錯過此事件。

  • 當同時使用 Cloud Firestore 和 Authentication 時,您應該始終將它們包含在同一個模塊中。如果這不可能,請確保在 Cloud Firestore之前加載身份驗證;否則,某些 Cloud Firestore 操作的身份驗證狀態可能不正確。

  • 使用firebase-crashlytics-ndk作為動態功能模塊的依賴項時,您需要在應用程序的build.gradle文件中設置unstrippedNativeLibsDir屬性,如Crashlytics NDK 文檔中所述。

有關功能模塊和 Play Feature Delivery 的更多信息,請訪問Play Feature Delivery 概述

Google 服務 Gradle 插件對比 Google Play 服務對比 Google Play 商店

Google、Firebase 和 Android 生態系統的多個部分具有相似的命名約定。以下是對每個的簡要說明:

Google 服務 Gradle 插件
在構建時運行的 Gradle 插件 ( com.google.gms.google-services ),以確保您的應用程序具有正確的配置來訪問 Firebase 和 Google API
儘管它的名稱如此,但此插件與 Google Play 服務無關(請參閱下一個條目)並且不會影響您的應用程序在運行時的功能。
此插件還會處理您在設置 Firebase 時添加到應用中的google-services.json文件。了解有關Google 服務 Gradle 插件的更多信息。
谷歌播放服務
一種在 Android 設備上運行並為設備上的應用程序提供多個常用 Google API(如 Google 地圖和 Google 登錄)的不可見後台服務
通過將這些通用 API 集中到一個服務中,它減少了其他應用程序的大小,並允許設備在沒有操作系統更新的情況下接收自動安全更新和功能增強。詳細了解Google Play 服務
谷歌商店
在 Android 設備上下載應用程序、電影、書籍等的商店
作為開發人員,您可以通過 Google Play 管理中心管理應用的分發、發布等。如果設備有 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 的示例代碼。

其他感興趣的話題