web-dev-qa-db-fra.com

Authentification Firebase: les demandes de cette Android com.xxx sont bloquées

J'implémente le didacticiel standard pour Firebase AuthUI dans mon Android. Cependant, lors des tests, j'essaie de me connecter à l'aide de la connexion Google à partir de l'application et d'obtenir l'exception suivante:

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

L'application affiche la bannière "Google SmartLock" comme si elle me connectait, mais disparaît ensuite et dans le logcat, je vois l'erreur ci-dessus.

J'ai vérifié que mes empreintes digitales de certificat SHA-1 pour le débogage et la version se trouvent dans la console Firebase. Je les utilise depuis un certain temps dans cette application, donc je sais qu'ils sont corrects.

J'ai activé la connexion Google et la connexion par e-mail sur la console d'authentification Firebase. J'ai essayé la connexion par e-mail/google et les deux processus commencent mais échouent avec la même exception. J'ai également téléchargé et utilisé un nouveau fichier google-services.json - aucun changement.

Le nom de l'application est correct. Pourquoi me bloquent-ils? Quelqu'un at-il eu de la chance en contactant le support Firebase?

Voici un extrait de 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'

Logcat:

/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. ]
8
pldenc44

La clé API Google Cloud que j'utilisais était limitée à Android avec le nom de mon package, mais seule l'empreinte du certificat de production SHA-1 a été donnée, pas la clé de débogage. J'ai ajouté le SHA- de la clé de débogage 1 certificat avec le nom du package afin que les certificats de production et de débogage apparaissent dans les "Restrictions d'application" pour la clé et cela a fonctionné. Apparemment, être "bloqué" par firebase signifie que votre clé API peut être restreinte de manière incorrecte.

8
pldenc44

Je viens de faire face au même problème aujourd'hui et heureusement résolu le problème. Je n'ai toujours aucune idée pourquoi cela se produisait mais voici les étapes que j'avais prises pour résoudre:

  1. Supprimez l'empreinte digitale du certificat de signature SHA-1 déjà ajoutée dans les paramètres de la console Firebase.
  2. Accédez à Android studio et projet de synchronisation avec des fichiers Gradle.
  3. Ajoutez à nouveau l'empreinte du certificat de signature SHA-1 aux paramètres de la console Firebase.

Voici comment ajouter l'empreinte digitale du certificat de signature SHA-1 à Firebase: CLIQUEZ ICI

5
Dipayan Ray

J'ai remarqué que pour une raison quelconque sur ma restriction de clé API Google Credentials, mon empreinte SHA-1 n'était pas incluse.

Pour trouver votre clé API, accédez à console.cloud.google.com/apis/credentials?project=. Ou allez sur console.cloud.google.com -> Cliquez sur l'icône hamburger en haut à gauche -> API et services -> Informations d'identification

Choisissez la clé API que vous utilisez. -Sous "Restrictions d'application", choisissez "Applications Android" (Si vous créez une application Android par exemple) -Sous "Restreindre l'utilisation à votre Android applications ", cliquez sur" Ajouter un élément "-Entrez votre nom de package et votre empreinte SHA-1

Pour savoir comment trouver votre empreinte SHA-1, LIEN

La tâche de signature de rapport peut être sous l'application Gradle (sur la bande verticale de droite) -> tâches -> Android

1
Rohan Kadkol