排查初始化选项问题

如果未曾使用一组有效的 Firebase 选项初始化您的应用,应用的新用户将会遇到严重问题。

Firebase 选项是一组参数。如果服务要成功与 Firebase 服务器 API 通信以及将客户端数据与 Firebase 项目和 Firebase 应用关联,则必须提供这些参数。Firebase 服务要求能够从在 Firebase 初始化期间创建的核心/通用库获得的有效 Firebase 选项。

不同的 Firebase 服务需要不同的选项才能正常运行,但是所有 Firebase 服务都需要以下 Firebase 选项:

  • API 密钥 - 注意:此密钥并非 FCM 服务器密钥,请参阅 FCM 服务器密钥
    示例值:AIzaSyDOCAbC123dEf456GhI789jKl012-MnO
  • 项目 ID - 示例值:myapp-project-123
  • 应用 ID(“AppID”) - 应用的唯一标识符,其格式取决于平台:
    • 对于 Android 设备:mobilesdk_app_id - 注意:这不是 Android 软件包名称
      示例值:1:1234567890:android:321abc456def7890
    • 对于 iOS+:GOOGLE_APP_ID- 注意:这不是 Apple 软件包 ID
      示例值:1:1234567890:ios:321abc456def7890

排查 Android 应用的问题

为了提高安全性,Firebase SDK 于 2 月 27 日进行了更新,之后又使用 Firebase Installations API 的一个依赖项替换了 Firebase 实例 ID 服务。

为了将客户端数据与您的 Firebase 项目关联,Firebase 安装会强制要求使用必要的 Firebase 选项 API 密钥、项目 ID 和应用 ID,并且要确保其有效性。如需了解详情,请参阅 FirebaseOptions

Firebase Cloud Messaging (FCM) 提供了 Firebase 实例 ID (IID)

如果您应用的新用户遇到 FCM 问题,则可能是因为您在初始化 Firebase 时没有提供一组必需的 Firebase 选项。

您的应用使用的可能是不完整或错误的 google-services.json 配置文件;或者您的应用在没有一整套必需的 Firebase 选项的情况下以编程方式初始化 Firebase

因此,当您发布使用更新后的 Firebase SDK 的应用后,安装了该应用的最终用户会在使用 Firebase Cloud Messaging 等 Firebase 服务时遇到故障。此外,向 Firebase 发送的请求反复失败可能会应用最终用户的体验降级。

我需要做什么?

要为您的应用修复运行异常的 Firebase 服务,请执行以下操作:

  1. 使用您项目的有效 API 密钥、有效的项目 ID 和有效的应用 ID(mobilesdk_app_id 或“应用 ID”)初始化 Firebase,以更新您的应用。
  2. 将应用的新版本发布到 Play 商店。

排查 Apple 应用的问题

为了提高安全性,Firebase SDK 于 1 月 14 日进行了更新,之后又使用 Firebase Installations API 的一个依赖项替换了 Firebase 实例 ID 服务。

为了将客户端数据与您的 Firebase 项目关联,Firebase 安装会强制要求使用必要的 Firebase 选项 API 密钥、项目 ID 和应用 ID,并且要确保其有效性。如需了解详情,请参阅 FIROptions

Firebase Cloud Messaging (FCM) 提供了 Firebase 实例 ID (IID)

如果您应用的新用户遇到 FCM 问题,则可能是因为您在初始化 Firebase 时没有提供一组必需的 Firebase 选项。

您的应用使用的可能是不完整或错误的 GoogleService-Info.plist 配置文件;或者您的应用在没有一整套必需的 Firebase 选项的情况下以编程方式初始化 Firebase

因此,当您发布使用更新后的 Firebase SDK 的应用后,安装了该应用的最终用户会在使用 Firebase Cloud Messaging 等 Firebase 服务时遇到故障。此外,向 Firebase 发送的请求反复失败可能会应用最终用户的体验降级。

我需要做什么?

要为您的应用修复运行异常的 Firebase 服务,请执行以下操作:

  1. 使用您项目的有效 API 密钥、有效的项目 ID 和有效的应用 ID(GOOGLE_APP_ID 或“应用 ID”)初始化 Firebase,以更新您的应用。
    1. 使用 Firebase 配置文件的默认初始化过程从 Firebase 控制台下载 GoogleService-Info.plist 配置文件,然后替换应用中的现有文件。
    2. 使用 FIROptions 对象以编程方式进行初始化:从 Firebase 控制台下载 GoogleService-Info.plist 配置文件以找到您的 API 密钥、项目 ID 和应用 ID,然后在应用的 FIROptions 对象中更新这些值。
  2. 将应用的新版本发布到 App Store。

FCM 服务器密钥

如果您的应用使用的是 FCM 服务器密钥而不是 Cloud API 密钥,那么当您使用此 FCM 服务器密钥通过 FCM 发送推送通知时,可能会导致出现安全漏洞。在这种情况下,我们强烈建议您修改服务器对发送到 FCM 的请求进行身份验证的方式。

请注意,FCM 服务器密钥(与 Firebase/Cloud API 密钥不同)不得包含在应用中,因为它们可能会被滥用于以项目名义发送推送通知。