其他项目中已存在使用此软件包名称和 SHA-1 的 OAuth2 客户端。

为什么我会看到此错误?

如果我们检测到其他 Firebase 或 Google Cloud 项目中存在使用指定软件包名称和 SHA-1 的 OAuth 2.0 客户端 ID,就会发送此错误消息。当您在 Firebase 控制台中向某个 Android 应用添加 Firebase 时,我们会为您的应用生成一个 Google OAuth 2.0 客户端 ID,用于向一些 Google API(如“应用邀请”或 Drive API)验证您应用的身份。出于安全方面的原因,用于创建 OAuth 2.0 客户端 ID 的每组软件包名称和 SHA-1 指纹在所有 Firebase 和 Google Cloud 项目中都必须是唯一的。

这会对我的应用产生什么影响?

目前有两项 Firebase 功能要求配置 Android 应用的软件包名称和 SHA-1:

  • 邀请:如果不提供 SHA-1 就无法运行。目前无法使用来自其他项目的 SHA-1。
  • 身份验证:要使用 Google 作为身份验证提供商,您必须在登录配置中手动将来自现有项目的客户端 ID 加入白名单。

我该怎么做?

如果您未使用 Firebase 邀请,也没有将 Google 作为 Firebase 身份验证的登录提供商,则您无需采取任何操作。如果您在使用其中一项功能,请参阅下面与您的情况最相符的场景说明:

我知道哪个 Google Cloud 项目中存在冲突 OAuth 2.0 客户端 ID,我不介意删除我的 Firebase 项目,或者我必须使用邀请功能。
如果您的 Firebase 应用已经正式发布,或者如果您想要保留一些 Analytics 数据或崩溃数据,则这种方法并不可取。

如果是刚刚创建此项目或者刚开始在应用中添加 Firebase,最简单的方法是删除您的项目,然后导入现有的 Google 项目。具体步骤如下:

  1. 删除您的 Firebase 项目。此操作是永久性的,会删除与项目关联的所有数据。
  2. 访问 Firebase 控制台
  3. 点击导入 Google 项目
  4. 选择存在相应 OAuth 2.0 客户端 ID 的现有项目,然后点击添加 Firebase
我不想导入现有的项目,也不使用邀请功能。

如果无法导入现有项目且不打算使用邀请功能,您可以手动将已存在的 OAuth 2.0 客户端 ID 加入白名单以使用 Google 作为登录提供商。

首先,找到现有项目的 OAuth 2.0 客户端 ID,具体步骤如下:

  1. 在 Google 云端控制台中转至“凭据”页面。如果包含 OAuth 2.0 客户端 ID 的项目没有自动打开,请从页面右上角的下拉菜单将其选中。
  2. OAuth 2.0 客户端 ID 部分中,找到包含您在 Firebase 项目中使用的 SHA-1 和软件包名称的客户端名称。如果不确定是哪个,请点击客户端名称以查看详情。
  3. 找到正确的客户端名称后,复制“客户端 ID”列中的完整值。

接着,将此客户端 ID 列入白名单以将 Google 作为登录提供商。具体步骤如下:

  1. 转至 Firebase 控制台并选择您的项目。
  2. 从左侧菜单中选择身份验证
  3. 选择登录方法标签。
  4. 登录方法页面上,点击登录提供商卡片中的 Google
  5. 展开在白名单中添加来自外部项目的客户端 ID 选项。
  6. 将云端控制台里的客户端 ID 粘贴到文本字段中,然后点击添加
我不知道哪个项目中存在冲突的 OAuth 2.0 客户端 ID。

如果您不知道哪个项目存在冲突的 OAuth 2.0 客户端 ID,请执行以下操作,看看能否找到它:

  1. 在 Google 云端控制台中转至“凭据”页面
  2. OAuth 2.0 客户端 ID 部分中,点击客户端名称以查看用于创建客户端 ID 的 SHA-1 和软件包名称。重复此操作,直到您找到正确的客户端名称或检查了所有客户端为止。

如果找不到包含匹配的 SHA-1 和软件包名称的客户端名称,请从页面右上角的下拉菜单另外选择一个项目,然后重复上述步骤。

在某些情况下,OAuth 2.0 客户端可能是在不属于您的项目中。如果无法找到冲突项目,请联系 Firebase 支持团队并向他们提供存在冲突的软件包名称和 SHA-1 指纹。

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
18392205191398012373
true
搜索支持中心
true
true
true
true
true
5054967
false
false