Firebase 身份验证无法启用 Google 身份验证方法 - “更新 Google 时出错”

dsp*_*rer 7 firebase google-oauth google-cloud-platform firebase-authentication

我尝试使用 Google Auth 登录方法启用 Firebase 身份验证,但启用它并单击“保存”会显示错误“更新 Google 时出错”

在 Google Cloud Console 活动日志中,它显示:

失败:google.internal.firebase.v1.FirebaseInternalProductService.EnableGoogleSignIn

错误消息“未找到 (HTTP 404):操作失败,错误代码为 NOT_FOUND。”

然而,当我在一个新的 Google Cloud 项目中尝试这一点时,它运行得非常好。我尝试删除并重新创建 Firebase Admin SDK、删除并创建新应用程序以及删除 OAuth 凭据。除了创建一个新项目之外,我似乎找不到任何解决此问题的方法,但我更愿意保留现有的项目 ID。

或者,如果有任何方法可以重置我的 GCP 项目或使用相同的 ID 重新制作它,那也可以。

dsp*_*rer 13

此问题是由于删除 Firebase 默认自动生成的 OAuth 客户端导致的。

要解决此问题,您需要首先创建一个新的 OAuth 2 客户端 ID,并为您的 Firebase 应用程序设置必要的重定向 URI(它们应默认为类似 的内容https://{PROJECT_ID}.web.app/__/auth/handler)。

然后,调用API - 请求应如下所示,使用上面生成的凭据中的客户端 ID 和客户端密钥:

PATCH https://identitytoolkit.googleapis.com/admin/v2/projects/{PROJECT_ID}/defaultSupportedIdpConfigs/google.com

{
  "name": "projects/{PROJECT_ID}/defaultSupportedIdpConfigs/google.com",
  "enabled": true,
  "clientId": "{YOUR_CLIENT_ID}",
  "clientSecret": "{YOUR_CLIENT_SECRET}"
}
Run Code Online (Sandbox Code Playgroud)

进行此 API 调用后,应启用 Google 身份验证提供程序。

  • 好吧,我找到了解决方案。我必须重新创建配置。在“尝试此 API”页面上,单击“创建”而不是“修补程序”。父参数是“projects/<your-project-id>。然后与@infrxion给出的参数相同。此页面也非常有用:https://firebase.google.com/docs/projects/provisioning/configure-oauth (5认同)
  • @infrxion 非常感谢您的帮助。我有同样的问题。不幸的是,按照您的答案中所述调用 Identitytoolkit api 不起作用。我收到错误 404 CONFIGURATION_NOT_FOUND。知道如何让它发挥作用吗? (4认同)
  • @Denerator您可以使用服务帐户,但如果这只是一次性的事情,最简单的方法是使用API​​资源管理器上的“尝试这个API”(https://cloud.google.com/identity- platform/docs/reference/rest/v2/projects.defaultSupportedIdpConfigs/patch) 并在那里输入您的请求,这样您就不必验证自己的身份。 (3认同)
  • 谢谢@log0,顺便说一句,从该页面调用 api 时,idpId 是 `google.com` (2认同)