Firebase 身份验证:来自此 Android 客户端应用程序 com.xxx 的请求被阻止

新手上路,请多包涵

我正在我的 Android 应用程序中实现 Firebase AuthUI 的标准教程。但是,在测试时,我尝试从应用程序内使用 Google 登录进行登录,但出现以下异常:

 com.google.firebase.FirebaseException: An internal error has occurred.
[ Requests from this Android client application com.xxx are blocked. ]

该应用程序显示“Google SmartLock”横幅,就好像它正在让我登录一样,但随后消失了,在 logcat 中我看到了上面的错误。

我验证了用于调试和发布的 SHA-1 证书指纹都在 Firebase 控制台中。我已经在此应用程序中使用它们一段时间了,所以我知道它们是正确的。

我在 Firebase 身份验证控制台上同时启用了 Google 登录和电子邮件登录。我已经尝试过电子邮件/谷歌登录,这两个过程都开始但失败并出现相同的异常。我还下载并使用了一个新的 google-services.json 文件——没有变化。

应用名称是正确的。他们为什么要阻止我?有没有人有幸联系到 firebase 支持?

这是来自 build.gradle 的片段:

 api 'com.android.support:support-v4:27.1.1'
api 'com.android.support:appcompat-v7:27.1.1'
api 'com.android.support.constraint:constraint-layout:1.1.2'
api 'com.google.firebase:firebase-storage:16.0.1'
api 'com.google.firebase:firebase-core:16.0.1'
api 'com.google.android.gms:play-services-maps:15.0.1'
api 'com.google.android.gms:play-services-location:15.0.1'
api 'com.google.android.gms:play-services-ads:15.0.1'
api 'com.google.code.findbugs:jsr305:3.0.2'
api 'com.google.apis:google-api-services-storage:v1-rev68-1.21.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
testImplementation 'junit:junit:4.12'

日志:

 /com.x.x W/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@13ca6fd
/com.x.x D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=12629, firebase_screen_class(_sc)=PhotoActivity, firebase_screen_id(_si)=-1316627329056180637}]
/com.x.x D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=PhotoActivity, firebase_previous_id(_pi)=-1316627329056180637, firebase_screen_class(_sc)=KickoffActivity, firebase_screen_id(_si)=-1316627329056180636}]
/com.x.x D/FA: Connected to remote service
/com.x.x D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=1312, firebase_screen_class(_sc)=KickoffActivity, firebase_screen_id(_si)=-1316627329056180636}]
/com.x.x D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=KickoffActivity, firebase_previous_id(_pi)=-1316627329056180636, firebase_screen_class(_sc)=SingleSignInActivity, firebase_screen_id(_si)=-1316627329056180635}]
/com.x.x D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=SingleSignInActivity, firebase_previous_id(_pi)=-1316627329056180635, firebase_screen_class(_sc)=SignInHubActivity, firebase_screen_id(_si)=-1316627329056180634}]
/com.x.x W/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@13ca6fd
/com.x.x D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=SignInHubActivity, firebase_previous_id(_pi)=-1316627329056180634, firebase_screen_class(_sc)=SingleSignInActivity, firebase_screen_id(_si)=-1316627329056180635}]
E/Volley: [23564] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyAssertion?alt=proto&key=[key]
E/Volley: [23564] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyAssertion?alt=proto&key=[key]
I/AuthChimeraService: Error description received from server: Requests from this Android client application com.x.x are blocked.

/com.x.x E/AuthUI: A sign-in error occurred.
com.google.firebase.FirebaseException: An internal error has occurred. [ Requests from this Android client application com.x.x are blocked. ]

原文由 pldenc44 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 503
2 个回答

我使用的 Google Cloud API 密钥仅限于 android 和我的包名称,但只提供了生产 SHA-1 证书指纹,而不是调试密钥。我添加了调试密钥的 SHA-1 证书以及包名称,以便生产和调试证书都出现在密钥的“应用程序限制”中并且它有效。显然被 firebase“阻止”意味着您的 API 密钥可能受到不正确的限制。

原文由 pldenc44 发布,翻译遵循 CC BY-SA 4.0 许可协议

我今天刚遇到同样的问题,幸运的是解决了问题。我仍然不知道为什么会这样,但这是我为解决问题而采取的步骤:

  1. 在 Firebase 控制台设置中删除已添加的 SHA-1 签名证书指纹。
  2. 转到 android studio 和 Sync Project with Gradle Files。
  3. 再次将 SHA-1 签名证书指纹添加到 Firebase 控制台设置。

以下是将 SHA-1 签名证书指纹添加到 firebase 的方法: 单击此处

原文由 Dipayan Ray 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题