Check out what’s new from Firebase at Google I/O 2022. Learn more

詳細了解 Android 和 Firebase

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

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

Android Studio 的 Firebase 助手插件

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

按照Android 入門頁面中的說明使用 Firebase 助手。確保您使用的是最新版本的 Android Studio 和 Firebase 助手(轉到文件 > 檢查更新)。

當您選擇特定的 Firebase 產品添加到您的應用時,Firebase 助手會自動在您的app/build.gradle文件中聲明所需的依賴項。但是,要使用 Firebase 助手當前功能之外的 Firebase 功能,您可能需要對這些依賴項進行一些手動更改:

  • 如果要使用Firebase Android BoM ,請更新模塊(應用級)Gradle 文件(通常為app/build.gradle )中的依賴項以導入 BoM 平台。您還需要從每個 Firebase 庫依賴項中刪除版本。

  • 如果您想使用Kotlin 擴展庫,請修改添加到您的模塊(應用級)Gradle 文件(通常是app/build.gradle )的依賴行,以改用ktx版本的 Firebase 庫。

谷歌服務——插件和配置文件

作為將 Firebase 添加到您的 Android 項目的一部分,您需要將google-services插件和google-services.json配置文件添加到您的項目中。

如果您通過Firebase 控制台管理 REST APIFirebase CLI將 Firebase 添加到您的 Android 項目,則必須手動將插件和配置文件添加到您的項目中。但是,如果您使用Firebase 助手,這些任務會在設置過程中自動為您完成。

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

Firebase Android 物料清單(物料清單)

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:30.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 物料清單版本

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:30.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 參考文檔

功能模塊和播放功能交付

自 2021 年 5 月起(Firebase BoM v28.0.0),Firebase Android SDK 可用於與基本應用程序模塊分開安裝的動態功能模塊。

要啟用對動態功能模塊的支持,請將以下依賴項添加到基本模塊的build.gradle文件中:

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

現在您已經添加了動態模塊支持,您可以將 Firebase SDK 依賴項(帶有或不帶有 Firebase BoM)添加到您應用的功能模塊並像往常一樣使用它們。

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

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

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

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

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

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

Google 服務 Gradle 插件 vs Google Play 服務 vs Google Play Store

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

谷歌服務 Gradle 插件
在構建時運行的 Gradle 插件 ( com.google.gms.google-services ) 以確保您的應用具有訪問 Firebase 和 Google API 的正確配置
儘管它的名字,這個插件與 Google Play 服務沒有任何關係(見下一個條目),並且在運行時對您的應用程序的功能沒有影響。
此插件還處理您在設置 Firebase 時添加到應用程序的google-services.json文件。詳細了解Google 服務 Gradle 插件
谷歌播放服務
一種在 Android 設備上運行並為設備上的應用程序提供多個常用 Google API(如 Google Maps 和 Google Sign In)的不可見後台服務
通過將這些通用 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 的示例代碼。

其他感興趣的話題