當您使用 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
插件和
配置文件添加到您的項目。
如果您通過Firebase 控制台、 Management REST API或Firebase 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 的一些常見問題解答:
以下是如何覆蓋 BoM 中指定的庫版本:
維護線導入BoM平台。
在庫的依賴行中,指定所需的庫版本。例如,如果您想使用 v18.0.0 的 App Indexing,無論 BoM 中指定的是什麼版本,但您想要使用 BoM 的版本進行身份驗證和 Cloud Firestore,下面是聲明依賴項的方法:
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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: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-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' }
否。Firebase Android BoM 僅管理 Firebase 庫的庫版本。唯一的例外是包含 Google 移動廣告 SDK,因為它在 Firebase 應用中非常常用。
儘管每個 Firebase 庫的版本都是獨立的,但它們是一起構建的,以確保每個庫的最新版本與其他庫兼容。
通過使用 BoM 管理應用的 Firebase 庫版本,您無需跟踪哪個版本的 Firebase 庫與另一個 Firebase 庫兼容。
即使您現在只在您的應用程序中使用一個 Firebase 庫,我們仍然建議您使用 BoM,因為您永遠不知道什麼時候您可能想要使用另一個 Firebase 庫!
是的,您仍然可以使用物料清單!對於 Gradle 5.0 及更高版本,BoM 支持會自動啟用。但是,對於早期版本的 Gradle,您只需要啟用 BoM 功能並以不同方式導入 BoM。
在您的
settings.gradle
文件中,添加enableFeaturePreview('IMPROVED_POM_SUPPORT')
。對於您的模塊(應用程序級別)Gradle 文件(通常是
app/build.gradle
),像普通庫一樣導入 BoM(沒有platform
修飾符),如下所示:dependencies { // Import the Firebase BoM implementation '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' }
訪問GitHub 上的 Firebase Android SDK 存儲庫。
比較 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 的示例代碼。