使用 Firebase 開發 Android 專案時,您可能會發現 使用不熟悉或專屬於 Firebase 的概念本頁 或參考實用資源瞭解詳情。
如有本頁未提及的主題相關問題,請造訪 其中一個線上社群。我們也會準備 定期根據新主題更新這個網頁 所以請定期回來查看 新增了您想要瞭解的主題!
Android Studio 專用的 Firebase Assistant 外掛程式
Firebase Assistant 是 Android Studio 外掛程式,可用來註冊您的 Android 並加入必要的 Firebase 設定檔 外掛程式和依附元件,都能從 Android 裝置完成 YouTube 工作室!
請按照 Android 入門指南頁面,即可使用 Firebase Assistant。確認您使用的是最新版本的 Android Studio 和 Firebase Assistant (前往「檔案」>「檢查更新」)。
選取要加入應用程式的特定 Firebase 產品後,Firebase
Google 助理會自動在
app/build.gradle
檔案。不過,如要使用 Firebase 以外的功能
建議您手動調整
這些依附元件的變更:
如要使用 Firebase Android BoM,請更新依附元件 位於模組 (應用程式層級) Gradle 檔案 (通常為
app/build.gradle
),以便 匯入 BoM 平台此外,您也必須從每個 Firebase 程式庫依附元件行。如要使用 Kotlin 擴充功能程式庫,請修改依附元件 加入模組 (應用程式層級) Gradle 檔案的一行 (通常
app/build.gradle
),改為使用 Firebase 程式庫的ktx
版。
Google 服務 - 外掛程式和設定檔
將 Firebase 新增至 Android 專案時,您需要
google-services
外掛程式和
設定檔
。
如果您是透過下列方式將 Firebase 新增至 Android 專案: Firebase 控制台 與 Management REST API 搭配使用 或者 Firebase CLI 您必須將外掛程式和設定檔手動加入專案中。不過, 使用 Firebase Assistant, 系統會自動完成相關設定
請造訪 Android 說明文件 ,瞭解 Google 服務外掛程式與設定檔如何搭配運作。
Firebase Android BoM (物料清單)
有了 Firebase Android BoM (物料清單) 就能 只要指定一個版本 (BoM) 版本。
在應用程式中使用 Firebase BoM 時,BoM 會自動提取 會對應至 BoM 版本的個別程式庫版本 每個版本都會相容。當您更新 BoM 在應用程式中使用的所有 Firebase 程式庫 就會更新至對應至該 BoM 版本的版本
瞭解哪個 Firebase 程式庫版本對應至特定的 BoM 版本,請參閱版本資訊 BoM 版本。如果您需要比較對應於單一 Pod 的程式庫版本 比較 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:33.1.2')
// 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 平台的那一行。
在程式庫的依附元件行中指定所需程式庫版本。適用對象 舉例來說,如要使用 18.0.0 版,以下說明如何宣告依附元件 都能使用應用程式索引功能 但您想使用 BoM 版本 驗證與 Cloud Firestore:
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:33.1.2')
// 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'
}
BoM 是否會自動將所有 Firebase 程式庫加入我的應用程式?
不行。如要在應用程式中新增及使用 Firebase 程式庫,您必須先宣告
在模組 (應用程式層級) Gradle 中將每個程式庫視為獨立的依附元件行
檔案 (通常為 app/build.gradle
)。
使用 BoM 可確保叢集中任何 Firebase 程式庫的版本 應用程式相容,但 BoM 實際上並未將這些 Firebase 新增 加入應用程式的程式庫
BoM 是否支援 Firebase Kotlin 擴充功能 (KTX) 程式庫?
當然可以!當您宣告特定的 Firebase 程式庫依附元件行時,只要使用 KTX 程式庫名稱,如下所示:
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:33.1.2')
// 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'
}
我可以使用 BoM 新增「非」Android 程式庫 Firebase?
不可以。Firebase Android BoM 僅管理 Firebase 的程式庫版本 程式庫唯一的例外是納入 Google Mobile Ads SDK 中 因為這項資料在 Firebase 應用程式中經常使用。
為什麼建議使用 BoM 管理 Firebase 程式庫版本?
雖然每個 Firebase 程式庫是各自版本,但每個程式庫都是建構版本 確保每個程式庫的最新版本都能相容 其他。
使用 BoM 管理應用程式的 Firebase 程式庫版本 所以需要追蹤哪個版本的 Firebase 程式庫 Firebase 程式庫。
即使您目前只在應用程式中使用一個 Firebase 程式庫,我們仍 建議採用 BoM,因為你永遠不知道何時該 又到了另一個 Firebase 程式庫!
我的應用程式使用 5.0 以下版本的 Gradle,我仍可使用 BoM?
可以,你仍可使用 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:33.1.2'
// 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'
}
如何回報有關 BoM 的問題或提供意見?
比較 Firebase BoM 版本
Kotlin 擴充功能 (KTX) 程式庫模組
Firebase Kotlin 擴充功能 (KTX) 程式庫模組是應用程式 您可透過這些模組編寫美觀的 慣用的 Kotlin 程式碼。
如要在應用程式中使用 KTX 程式庫模組,請變更依附元件,納入
-ktx
後置字串。每個 KTX 模組會自動有一個主要的依附元件
程式庫模組,因此不需要在應用程式中同時加入這兩種依附元件。
dependencies {
// Import the BoM for the Firebase platform (learn more)
implementation platform('com.google.firebase:firebase-bom:33.1.2')// 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 產品都提供 KTX 模組,但以下項目除外: Firebase ML 和應用程式索引。
如果您還沒有這樣做,請參考 KTX 模組的 API 參考文件。
功能模組和 Play Feature Delivery
自 2021 年 5 月 (Firebase BoM v28.0.0) 起,Firebase Android SDK 的 用於動態功能模組,並與基礎功能分開安裝 應用程式模組。
如要啟用動態功能模組的支援功能,請新增下列依附元件
新增至 base 模組的 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 的 Dynamic Links 或 Firebase 應用程式內通訊等產品 用於動態功能模組時,
first_open
事件可能會錯過這個事件。同時使用 Cloud Firestore 與驗證功能時,請一律納入 同一個單元如果無法這麼做 是在 Cloud Firestore「之前」載入;否則部分 Cloud Firestore 作業 因處於不正確的驗證狀態
使用
firebase-crashlytics-ndk
做為動態功能的依附元件時 模組,您必須在應用程式的unstrippedNativeLibsDir
build.gradle
檔案, 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 服務無關 (詳情請參閱 ,而且不會影響應用程式在執行階段的功能。
- 這個外掛程式也會處理您新增到
google-services.json
即可修改您的應用程式。如想進一步瞭解來電目錄、轉接和錄音服務政策, Google 服務 Gradle 外掛程式。 - Google Play 服務
- 在 Android 裝置上執行的隱形背景服務, Google 地圖和 Google 登入等常見的 Google API, 裝置
- 將這些常見的 API 集中整合為單一服務,可縮減資源大小 並讓裝置能夠自動接收安全性更新,以及 強化功能,而不必更新 OS進一步瞭解 Google Play 服務。
- Google Play 商店
- 在 Android 裝置上下載應用程式、電影、書籍等內容的商店
- 開發人員可透過以下管道管理應用程式的發行和版本等: Google Play 管理中心。如果裝置有 Google Play 商店 執行 Google Play 服務 (請參閱先前項目)。如想進一步瞭解來電目錄、轉接和錄音服務政策, 開發人員專用 Google Play 商店。
- Google Play Games Services
- 行動遊戲開發人員適用的一組 API
- 進一步瞭解 Google Play 遊戲服務 以及如何 將 Firebase 與 Google Play 遊戲服務專案整合。
Firebase Android SDK 的開放原始碼資源
Firebase 支援開放原始碼開發,我們也鼓勵社群使用 貢獻和意見回饋
Firebase Android SDK
大多數 Firebase Android SDK 都是在 Google Cloud 公開開發的開放原始碼程式庫 Firebase GitHub 存放區。 我們正努力將其餘私人開發的 Firebase 遷移至其他產品 將程式庫新增至公開 GitHub!
快速入門導覽課程範例
Firebase 針對多數 Firebase API,維護一組快速入門範例: Android。在我們的公開網站上尋找這些快速入門導覽課程 Firebase GitHub 快速入門導覽課程存放區。
您可以 Android Studio 專案的形式開啟每項快速入門導覽課程,然後在 行動裝置或虛擬裝置 (AVD)您也可以使用這些快速入門導覽課程 。