Google 致力于为黑人社区推动种族平等。查看具体举措

详细了解 Android 和 Firebase

当您使用 Firebase 开发 Android 项目时,您可能会发现不熟悉或特定于 Firebase 的概念。此页面旨在回答这些问题或为您提供资源以了解更多信息。

如果您对本页未涵盖的主题有任何疑问,请随时访问我们的在线社区之一。我们还会定期使用新主题更新此页面,因此请回来查看我们是否添加了您想了解的主题!

适用于 Android Studio 的 Firebase 助手插件

Firebase 助手是一个 Android Studio 插件,可将您的 Android 应用程序注册到 Firebase 项目,并将必要的 Firebase 配置文件、插件和依赖项添加到您的 Android 项目中——所有这些都来自 Android Studio!

按照Android 入门页面中的说明使用 Firebase 助手。确保您使用的是最新版本的 Android Studio 和 Firebase Assistant(转到文件 > 检查更新)。

当您选择要添加到应用中的特定 Firebase 产品时,Firebase 助手会自动在您的app/build.gradle文件中声明所需的依赖app/build.gradle 。但是,要使用 Firebase 助手当前功能之外的 Firebase 功能,您可能需要对这些依赖项进行一些手动更改:

  • 如果您想使用Firebase Android BoM ,请更新您的模块(应用级)Gradle 文件(通常是app/build.gradle )中的app/build.gradle以导入 BoM 平台。您还需要从每个 Firebase 库依赖项行中删除版本。

  • 如果您想使用Kotlin 扩展库,请修改添加到您的模块(应用级)Gradle 文件(通常为app/build.gradle )的依赖项行,以改用 Firebase 库的ktx版本。

Google 服务——插件和配置文件

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

如果您通过Firebase 控制台管理 REST APIFirebase 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 )中声明依赖app/build.gradle 。使用 BoM 时,您无需在依赖项行中指定单个库版本。

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:28.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 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:28.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 功能交付

自 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)添加到应用的功能模块中,并像往常一样使用它们。

例如,如果您的应用程序使用实时数据库来支持特定的实时功能,您可以将build.gradle firebase-database依赖项添加到功能模块而不是基础模块的build.gradle中。这将减少大多数用户的下载大小。

在功能模块中使用 Firebase SDK 时请注意以下注意事项:

  • 在动态功能模块中使用时,Crashlytics 不会捕获 NDK 崩溃。

  • 依赖于 Analytics first_open事件的动态链接或 Firebase 应用内消息传递等产品在动态功能模块中使用时可能会错过此事件。

  • 当一起使用 Cloud Firestore 和身份验证时,您应该始终将它们都包含在同一个模块中。如果这是不可能的,请确保Cloud Firestore之前加载身份验证;否则,某些 Cloud Firestore 操作的身份验证状态可能不正确。

有关功能模块和 Play 功能交付的更多信息,请访问Play 功能交付概述

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 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 的示例代码。

其他感兴趣的话题