详细了解 Android 和 Firebase

使用 Firebase 开发 Android 项目时,您可能会发现不熟悉的概念或 Firebase 特有的概念。本页面旨在解答这些问题,或者帮助您找到相关资源以了解详细信息。

如果您对本页面未涵盖的主题有疑问,请随时访问我们的在线社区。我们还将通过定期添加新主题来更新此页面,因此您可以过段时间后返回此处,看看我们是否已添加您想要了解的主题!

适用于 Android Studio 的 Firebase Assistant 插件

Firebase Assistant 是一款 Android Studio 插件,可在 Firebase 项目中注册您的 Android 应用,并将必要的 Firebase 配置文件、插件和依赖项添加到您的 Android 项目中 - 所有这些都在 Android Studio 中完成!

请按照 Android 使用入门页面中的说明使用 Firebase Assistant。请确保您使用的是最新版本的 Android Studio 和 Firebase Assistant(点击 File > Check for updates)。

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

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

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

Google 服务 - 插件和配置文件

在将 Firebase 添加到您的 Android 项目时,您需要将 google-services 插件和 google-services.json 配置文件添加到您的项目。

如果您通过 Firebase 控制台Management REST APIFirebase CLI 将 Firebase 添加到您的 Android 项目,则必须手动将插件和配置文件添加到您的项目。不过,如果您使用 Firebase Assistant,则系统会在设置过程中自动为您完成这些任务。

如需了解 Google 服务插件和配置文件如何协同工作,请访问 Android 文档

Firebase Android BoM(物料清单)

借助 Firebase Android BoM(材料清单),您只需指定一个版本(BoM 的版本),即可管理所有 Firebase 库版本。

在应用中使用 Firebase BoM 时,BoM 会自动拉取映射到 BoM 版本的各个库版本。其中每个版本都将兼容。在应用中更新 BoM 版本时,您在应用中使用的所有 Firebase 库都将更新为映射到该 BoM 版本的版本。

要了解哪些 Firebase 库版本映射到特定的 BoM 版本,请查看相应 BoM 版本的版本说明。如果需要将映射到一个 BoM 版本的库版本与映射到另一个 BoM 版本的库版本进行比较,请使用下面的比较微件

详细了解 BoM 平台的 Gradle 支持

下面说明了如何使用 Firebase Android BoM 在您的模块(应用级)Gradle 文件(通常为 app/build.gradle)中声明依赖项。使用 BoM 时,您无需在依赖项行中指定单独的库版本。

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:32.3.1')

  // 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:32.3.1')

  // 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)添加到应用的功能模块中,并照常使用它们。

例如,如果您的应用使用 Realtime Database 驱动特定实时功能,您可以将 firebase-database 依赖项添加到功能模块(而不是基础模块)的 build.gradle 中。对于大多数用户,这会减少下载内容的大小。

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

  • 在动态功能模块中使用时,依赖于 Analytics first_open 事件的 Dynamic Links 或 Firebase In-App Messaging 等产品可能会错过此事件。

  • 搭配使用 Cloud Firestore 和 Authentication 时,您应始终将这两项添加在同一模块中。如果做不到这一点,请确保 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 插件
Google Play 服务
在 Android 设备上运行的不可见后台服务,可为设备上的应用提供若干常用的 Google API(如 Google 地图和 Google 登录)
通过将这些常用 API 集中到单个服务中,可缩减其他应用的大小,并允许设备在不进行操作系统更新的情况下接收自动安全更新和增强功能。详细了解 Google Play 服务
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 的示例代码。

其他相关主题