当您使用 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:31.2.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:31.2.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:31.2.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:31.2.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:31.2.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 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 的示例代码。