當您使用 Firebase 開發 Android 專案時,您可能會發現不熟悉或 Firebase 特有的概念。本頁面旨在回答這些問題或為您提供資源以了解更多資訊。
如果您對本頁未涵蓋的主題有疑問,請隨時造訪我們的線上社群之一。我們還將定期用新主題更新此頁面,因此請回來查看我們是否添加了您想要了解的主題!
適用於 Android Studio 的 Firebase 助理插件
Firebase Assistant 是一個 Android Studio 插件,可將您的 Android 應用程式註冊到 Firebase 項目,並向您的 Android 專案添加必要的 Firebase 設定檔、插件和依賴項 - 全部都在 Android Studio 內完成!
按照Android 入門頁面中的說明使用 Firebase 助手。確保您使用的是最新版本的 Android Studio 和 Firebase Assistant(前往檔案 > 檢查更新)。
當您選擇要新增至應用程式中的特定 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 控制台、管理 REST API或Firebase CLI將 Firebase 新增至 Android 項目,則必須手動將外掛程式和設定檔新增至項目。但是,如果您使用Firebase Assistant ,這些任務會在設定過程中自動為您完成。
請造訪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.4.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.4.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.4.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 庫!
是的,您仍然可以使用 BoM!對於 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.4.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 函式庫模組的小夥伴,您可以使用它們來編寫美觀且慣用的 Kotlin 程式碼。
若要在您的應用程式中使用 KTX 庫模組,請變更您的依賴項以包含-ktx
後綴。每個 KTX 模組都會自動依賴主庫模組,因此無需在應用程式中包含這兩個依賴項。
dependencies { // Import the BoM for the Firebase platform (learn more) implementation platform('com.google.firebase:firebase-bom:32.4.0')// Declare the main module implementation 'com.google.firebase:firebase-analytics'// Declare the KTX module instead (which automatically has a dependency on the main module) 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 功能交付
自 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 時請注意以下注意事項:
依賴 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 商店
Google、Firebase 和 Android 生態系統的多個部分具有類似的命名約定。以下是每一項的簡要解釋:
- 谷歌服務 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 集中到單一服務中,可以減少其他應用程式的大小,並允許裝置無需更新作業系統即可接收自動安全更新和功能增強。詳細了解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 的範例程式碼。