获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

详细了解 Android 和 Firebase

当您使用 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插件和google-services.json配置文件添加到您的项目。

如果您通过Firebase 控制台Management 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 )中声明依赖项。使用 BoM 时,您无需在依赖行中指定各个库版本。

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:31.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:31.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 的示例代码。

其他感兴趣的话题