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

Firebase身份验证:来自此Android客户端应用程序com.xxx的请求被阻止,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我正在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”横幅,好像是

我正在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 Auth控制台上启用了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. ]

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

我今天遇到了同样的问题,幸运的是解决了这个问题。我仍然不知道为什么会发生这种情况,但以下是我采取的解决步骤:

  • 在Firebase控制台设置中删除已添加的SHA-1签名证书指纹
  • 转到android studio并将项目与Gradle文件同步
  • 将SHA-1签名证书指纹再次添加到Firebase控制台设置
    以下是如何将SHA-1签名证书指纹添加到firebase:

    我注意到,由于某些原因,我的Google凭据API密钥限制中没有包含我的SHA-1指纹

    要查找API密钥,请转到console.cloud.google.com/API/credentials?project=。 或者转到console.cloud.google.com->单击左上角的汉堡图标->API和服务->凭证

    选择您正在使用的API密钥。 -在“应用程序限制”下,选择“Android应用程序”(例如,如果您正在构建Android应用程序) -在“限制Android应用的使用”下,单击“添加项目” -输入您的包裹名称和SHA-1指纹

    要知道如何找到你的SHA-1指纹

    signingReport任务可能位于Gradle(右侧垂直带)应用程序->任务->android下,在我的情况下:

    如果您正在使用Google Play应用程序签名,只需登录Firebase进入“项目设置”->“集成”,然后按一个按钮将Google Play与Firebase链接,SHA-1将自动添加。下载并更改新的google-services.json


    如果您一直遇到问题,请转到Google Cloud API,单击左上角的汉堡图标->API和服务->凭证。选择您正在使用的API密钥。在“限制”下,选择“无”。

    当我为我的项目更改平台时,我也出现了相同的问题。即使我在firebase控制台上添加了SHA-1键,它也不起作用。在我用我的项目名称登录谷歌云平台(console.cloud.Google.com)之后。我显示自动生成的API密钥不包含我的新SHA-1密钥。因此,我通过添加project的软件包名称和SHA密钥手动更新了它,它可以正常工作。

    如果您将应用程序发布到google play store,然后显示此错误:

    [ Requests from this Android client application com.x.x are blocked. ]
    
    这里有一个非常容易解决您的问题的解决方案

  • 打开谷歌游戏控制台->
  • 已转到您的特定应用程序,该应用程序显示错误
  • 然后进入
    Setup->App sign
  • 最后你得到了你的
    SHA-1证书指纹

  • 要查找您的SHA-1证书指纹,请转到。或者转到->点击
    左上角->API和服务->凭证-/code>上的汉堡图标。并更改您的所有
    SHA-1证书指纹

    我遇到了这个问题,并四处寻找解决方案。事实证明,至少在我的情况下,你实际上需要进入谷歌云平台的凭证屏幕,在那里你会发现:

    限制Android应用的使用 添加您的软件包名称和SHA-1签名证书指纹,以限制Android应用程序的使用


    您可以在那里添加新项目,即您的应用程序包及其SHA-1签名。这样您就不会再有这个问题了(假设其余的配置都完成了)。我的应用程序对Android应用程序的密钥进行了限制,这是一个必要的步骤。

    对于可能面临此问题的任何其他人,您可能正在游戏控制台上使用内部应用程序共享,并启用了谷歌签名。如果是这样,您可能忘记将其调试SHA-1密钥添加到firebase控制台


    很难调试,也很难找到答案,所以我希望我已经添加了所有正确的关键字来帮助下一个家伙。

    在我的例子中,我按照以下步骤遇到了这个问题:

    • 首先,我删除了SHA-1和SHA-256键
    • 建造我的梯度
    • 添加FirebaseApp.initializeApp(此);在我的BAseapp中
    • 再次添加我的SHA密钥并运行我的应用程序
    • 问题解决了

    您是否已从
    firebase
    控制台启用谷歌
    登录
    。是的,我有。电子邮件和谷歌登录已启用。登录过程开始,但失败。当我尝试使用电子邮件登录时,我在提交电子邮件/密码时也会遇到同样的异常。我使用
    Firebase
    完成了许多项目,因此我不认为这是出于他们的目的,你能分享
    build.gradle
    文件和Firebase控制台的代码吗