Erreur de connexion Google 12500


106

J'essaie d'intégrer Google Sign In dans mon application. Je n'ai pas de serveur principal, je reçois simplement les détails du compte Google connecté dans mon application.

Je l'ai d'abord essayé en utilisant l' exemple de connexion Google mais j'ai eu une erreur (aucune modification de code effectuée à l'exception de l'impression du stacktrace ci-dessous). Je viens d'utiliser l'exemple SignInActivity car je n'ai pas de serveur back-end.

 Exception com.google.android.gms.common.api.ApiException: 12500: 
 at com.google.android.gms.common.internal.zzb.zzz(Unknown Source)
 at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
 at com.ewise.android.api.MainActivity.onActivityResult(SignInActivity.java:89)     at android.app.Activity.dispatchActivityResult(Activity.java:7010)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:4187)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:4234)
 at android.app.ActivityThread.-wrap20(ActivityThread.java)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6316)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Code

 public class SignInActivity extends AppCompatActivity implements
         View.OnClickListener {

     private static final String TAG = "SignInActivity";
     private static final int RC_SIGN_IN = 9001;

     private GoogleSignInClient mGoogleSignInClient;
     private TextView mStatusTextView;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         // Views
         mStatusTextView = findViewById(R.id.status);

         // Button listeners
         findViewById(R.id.sign_in_button).setOnClickListener(this);
         findViewById(R.id.sign_out_button).setOnClickListener(this);
         findViewById(R.id.disconnect_button).setOnClickListener(this);

         // [START configure_signin]
         // Configure sign-in to request the user's ID, email address, and basic
         // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                 .requestEmail()
                 .build();
         // [END configure_signin]

         // [START build_client]
         // Build a GoogleSignInClient with the options specified by gso.
         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
         // [END build_client]

         // [START customize_button]
         // Set the dimensions of the sign-in button.
         SignInButton signInButton = findViewById(R.id.sign_in_button);
         signInButton.setSize(SignInButton.SIZE_STANDARD);
         signInButton.setColorScheme(SignInButton.COLOR_LIGHT);
         // [END customize_button]
     }

     @Override
     public void onStart() {
         super.onStart();

         // [START on_start_sign_in]
         // Check for existing Google Sign In account, if the user is already signed in
         // the GoogleSignInAccount will be non-null.
         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
         updateUI(account);
         // [END on_start_sign_in]
     }

     // [START onActivityResult]
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);

         // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
         if (requestCode == RC_SIGN_IN) {
             // The Task returned from this call is always completed, no need to attach
             // a listener.
             Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
             handleSignInResult(task);
         }
     }
     // [END onActivityResult]

     // [START handleSignInResult]
     private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
         try {
             GoogleSignInAccount account = completedTask.getResult(ApiException.class);

             // Signed in successfully, show authenticated UI.
             updateUI(account);
         } catch (ApiException e) {
             // The ApiException status code indicates the detailed failure reason.
             // Please refer to the GoogleSignInStatusCodes class reference for more information.
             Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
             e.printStackTrace();
             updateUI(null);
         }
     }
     // [END handleSignInResult]

     // [START signIn]
     private void signIn() {
         Intent signInIntent = mGoogleSignInClient.getSignInIntent();
         startActivityForResult(signInIntent, RC_SIGN_IN);
     }
     // [END signIn]

     // [START signOut]
     private void signOut() {
         mGoogleSignInClient.signOut()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END signOut]

     // [START revokeAccess]
     private void revokeAccess() {
         mGoogleSignInClient.revokeAccess()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END revokeAccess]

     private void updateUI(@Nullable GoogleSignInAccount account) {
         if (account != null) {
             mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));

             findViewById(R.id.sign_in_button).setVisibility(View.GONE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
         } else {
             mStatusTextView.setText(R.string.signed_out);

             findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
         }
     }

     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.sign_in_button:
                 signIn();
                 break;
             case R.id.sign_out_button:
                 signOut();
                 break;
             case R.id.disconnect_button:
                 revokeAccess();
                 break;
         }
     }
  }

D'après ce que j'ai lu, le problème pourrait être causé par la génération SHA1 .

J'ai suivi le guide complet mais apparemment ça ne marche pas.

J'ai copié le SHA1 de Gradle SigningReport

Variant: debug
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: release
Config: none
----------
Variant: debugAndroidTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: debugUnitTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047

quelle pourrait en être la cause possible?

Merci

PS Serait-ce une cause possible?

Google Play services out of date.  Requires 11720000 but found 10932470

Hé pouvez-vous s'il vous plaît poster votre code
Dilip

Salut @Dilip J'ai littéralement utilisé ceci :) github.com/googlesamples/google-services/tree/master/android/… . Mis à jour quand même
Aaron

1
Alors que se passe-t-il, vous obtenez la même erreur ou quoi que ce soit d'autre qui se passe.
Dilip

Oui @Dilip j'obtiens la même erreur. J'ai croisé le nom du paquet vérifié. J'ai même essayé d'utiliser un autre keystore mais le résultat est le même.
Aaron

Vous devez apporter des modifications au code pour obtenir votre clé API. Et oui, vous devriez mettre à jour les services de jeu
OneCricketeer

Réponses:


37

Mettez simplement à jour vos services Google Play vers la dernière version (ou 11720000 dans ce cas). Si vous utilisez AVD, les images Nexus 5 et 5X prennent en charge Google Play. Une fois l'émulateur opérationnel, accédez au menu des commandes étendues> Google Play, puis mettez à jour.


Comment le faire sur les appareils Samsung?
Pinkesh Darji

7
Ce n'est pas le problème dans mon cas. Les services Google Play sont déjà à jour.
Adam Hurwitz

La solution de @ zub0r concernant les liens de projet et de confidentialité doit être acceptée comme la bonne réponse.
Adam Hurwitz

S'il vous plaît où se trouve le menu des commandes étendues, sur l'émulateur ou sur Visual Studio?
George Udosen

122

Erreur PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

Cette erreur 12500 peut être résolue en ajoutant une adresse e-mail d' assistance à votre projet dans les paramètres du projet. Ouvrir le lien https://console.firebase.google.com/

Sélectionnez Votre projet et ouvrez l'onglet Paramètres.

Fournissez un e-mail d'assistance valide et redémarrez votre application maintenant.

entrez la description de l'image ici


10
Merci mec! Cette erreur est assez cryptique, cela peut signifier tout ce qui est mentionné dans les réponses ici. Mon problème était celui-ci :(
Billda

3
J'ai fait tout ce qui est mentionné dans la console du développeur developer.google.com/identity/sign-in/android/sign-in et après avoir passé une journée à essayer de mettre l'empreinte digitale SHA-1 et tout cela était le problème. Vous avez aidé. Merci beaucoup!
classe Android

Essayez d'ajouter la clé SHA1 pour votre projet @RohitSingh
Maddu Swaroop

1
@MadduSwaroop Si seulement il y avait un moyen de voter deux fois ... merci monsieur
Lefty

1
Vous avez sauvé ma journée
Houssem

46

Vérifiez si les empreintes digitales SHA-1 sont ajoutées aux paramètres du projet Firebase. Sinon, recherchez l'empreinte digitale SHA-1 en utilisant

https://developers.google.com/android/guides/client-auth

Recherchez également l'empreinte digitale SHA-1 de la clé de libération à l'aide de

keytool -list -v -keystore <keystore path>

Supprimer <keystore path>avec le chemin du magasin de clés.

Ajoutez ensuite les deux empreintes digitales SHA-1 aux paramètres des projets Firebase.

NB: N'oubliez pas de remplacer google-services.json par google-services.json mis à jour par de nouvelles empreintes digitales. J'ai perdu deux jours là-dessus.

Pendant le débogage

Le studio Android génère automatiquement ~/.android/debug.keystorelors de la première version de débogage et l'utilise pour signer l'application.

Pour obtenir l'exécution SHA-1 (mot de passe android) ( doc ):

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Cela SHA-1doit être ajouté aux paramètres de l'application firebasepour permettre l'utilisation des fonctionnalités de connexion Google lors du test de la version de débogage.


2
Comment êtes-vous certain qu'il utilise Firebase?
PaulG

Je l'ai deviné (similitude dans le code et sans serveur). Le projet Firebase est également connecté à la console GCP. Nous pouvons également modifier les empreintes digitales dans les identifiants GCP.
Niyas Nazar

même erreur avec, mais dans mon cas, ce n'était pas lié à Firebase (je ne l'utilise pas).
Majed DH

Accédez à console.developers.google.com/apis/credentials. Ajoutez de nouvelles informations d'identification (O Auth Client) avec la clé SHA. (Firebase le fait automatiquement pour nos projets Firebase)
Niyas Nazar

Le fichier google-services.json se trouve dans le répertoire de l'application à l'intérieur de votre projet. (Passer par Finder / File Explorer)
Mehul Tandale

43

 pour l'erreur 12500 Vous devez ajouter le support gmail dans les paramètres de Firebase uniquement et pour l'erreur 10, ajoutez l'empreinte digitale ssh dans la console Firebase comme vous le voyez sur l'image


bonne réponse simple, Je viens de configurer mon compte gmail et bam il fait le reste
Ajeett

43

L'e-mail d'assistance ainsi que tous les liens de projet et de confidentialité sont nécessaires pour que Google SignIn fonctionne, sinon cela génère 12500.

Définissez-le sur https://console.developers.google.com/apis/credentials en bas du deuxième onglet intitulé "Écran de consentement OAuth" - vous y trouverez trois liens qui doivent être configurés.

Ceci n'est mentionné nulle part dans les guides Firebase.


3
Merci, ça marche pour moi. J'ai perdu presque des jours entiers à résoudre le problème
krishan kumar Sharma

2
Merci, je viens d'ajouter l'un des «domaines autorisés» aux liens de confidentialité et tout a fonctionné. Vous m'avez sauvé quelques heures d'essais et d'erreurs 💌
Coco

Cela devrait être une réponse acceptée. J'ai eu du mal avec ces 2 jours, sans aucun succès. Google devrait mettre à jour les guides, pour l'instant leur documentation est trompeuse, leur guide ne fonctionnera jamais et le code d'erreur ne dit rien
user1209216

1
où ajouter des liens de confidentialité?
Shihab Uddin

4
Sur le deuxième onglet intitulé "Écran de consentement OAuth" - au bas du formulaire, vous avez trois liens
zub0r

21

Essayez de mettre à jour l'écran de consentement OAuth sur https://console.developers.google.com/apis/credentials


3
J'ai dû ajouter un e-mail d'assistance, puis cela a commencé à fonctionner. C'était flottant.
adarsh

Tous les liens de projet et de confidentialité sont également nécessaires, sinon cela génère 12500. Ceci n'est mentionné nulle part.
zub0r

Les liens @ zub0r ne sont pas nécessaires. Source: Je viens de le faire sans eux.
easycheese

18

J'étais coincé avec ça pendant un moment.

Assurez-vous que ces étapes sont effectuées

  • La clé SHA correcte est enregistrée sur la console Firebase.
  • Téléchargez le dernier google-service.json
  • Et le dernier et le plus important Enregistrer le consentement OAuth sous les informations d'identification dans google api, écran OAuth Cela a pris du temps à comprendre. Et cela a bien fonctionné après cela.

6
bien. cela devrait être la réponse acceptée pour 2019 ici. le google "doit" étrangement mettre à jour le contenu dans OAuth Consent
mochadwi

1
Ugh, un autre vote pour ça. C'était totalement mon problème obscur.
easycheese

12

Il semble que votre SHA1 est écrasé par Google Play Store. Vérifiez dans votre Google Play Store, dans le panneau de lancement, sous la signature d'applications, voyez si Google Play a un SHA1 supplémentaire ajouté.

Et copiez que SHA1, ajoutez à votre endroit pertinent, ferait le travail.


1
Oh mon Dieu! Merci pour cette astuce! Les App Bundles ont créé leur propre SHA1, de sorte que les clés de version utilisées localement (lors de la génération d'APK) ne sont plus les bonnes.
Jia Tse

C'est le flux de travail le plus déroutant qui soit. Mais merci pour la pointe
DarkNeuron

5

S'il y a encore quelqu'un avec un problème similaire, si vous ajoutez des étendues personnalisées, assurez-vous qu'il s'agit d'une étendue valide. Dans mon cas, j'ai mélangé les portées Facebook avec les portées Google et j'ai mis du temps à le comprendre!


5

J'utilise l'authentification Firebase. Mon SHA-1 a été indiqué correctement, l'identifiant du client était également correct mais j'obtenais toujours 12500.

Il s'est avéré que mon problème était que je n'ai pas indiqué l' adresse e-mail du support dans les paramètres de mon projet. (Paramètres -> onglet Général -> section Votre projet (Paramètres publics)).


3
La même chose s'est produite pour moi aussi. Il existe de graves problèmes de documentation avec les services de Google. Je souhaite qu'ils documentent ces problèmes ou au moins montrent une erreur conviviale.
ashish-goel

4

Accédez à votre projet dans la console Firebase, ouvrez les paramètres du projet, ajoutez-y vos empreintes de certificat SHA. Téléchargez le fichier google-services.json mis à jour et ajoutez-le à votre dossier d'application Projets.

Cela a fonctionné pour moi.

Capture d'écran de la console Firebase


3

Je pense que l'erreur est venue du mauvais SHA1. N'oubliez pas que le SHA1 est différent entre le mode de sortie et le mode de débogage dans le studio Android. Au lieu d'utiliser keytool pour obtenir le SHA1, vous pouvez utiliser le projet Gradle -> Tâche -> Android -> SigningReport dans le studio Android (vous pouvez l'ouvrir avec le menu Affichage -> Toolwindow -> gradle) pour obtenir la version et déboguer SHA1. Après cela, pour un travail facile, vous devez créer 2 informations d'identification distinctes avec deux SHA1 sur la console Google Cloud (google demande simplement d'en créer 1 à l'aide de la version SHA1, lorsque nous le développerons, cela ne fonctionnera pas car il utilise le débogage SHA1).


3

Assurez-vous d'abord que vous avez enregistré votre application dans la console des développeurs Google

Assurez-vous que vous disposez des clés debuget releasedans votre application Firebase. Si cette erreur apparaît en production, ajoutez votre application SHA-1 release keyto fire base. S'il apparaît en cours de développement, ajoutez votre fichier SHA-1 debug key.

Où ajouter l'empreinte digitale SHA-1

Obtention de la clé de débogage / libération:

keytool -exportcert -list -v -alias [your alias] -keystore [path/to/debug or release.keystore]

Assurez-vous de télécharger la mise google-services.jsonà jour sur votre application.


J'échouais avec GoogleSignInResult.getSuccess () retournant false et un code de 12500. En fin de compte, c'était que quelqu'un d'autre avait configuré mon OAuth avec leur SHA1 au lieu de ma clé de débogage. Cela l'a corrigé.
Reckless

@Reckless Je suis content que cela ait aidé!
Denn

2

Pour moi, le problème était d'utiliser un ClientID 'release' avec mon application configurée pour le débogage. Assurez-vous d'avoir une version et une clé de débogage, utilisant respectivement chaque SHA-1.


2

Si vous venez ici de flutter : C'est l'un des cas d'angle que nous devons résoudre selon la documentation ici: https://pub.dev/packages/google_sign_in entrez la description de l'image ici

  • Aller à API et services Google
  • Sélectionnez l'application à laquelle vous souhaitez mettre en œuvre la connexion google.
  • Cliquez ensuite sur Activer APIS et services

entrez la description de l'image ici

  • Ensuite, recherchez l'API Google Peoples

entrez la description de l'image ici

  • Ouvrez la carte API Google People et cliquez sur Activer, votre application peut résoudre le problème.

2

Lorsque votre application s'authentifie auprès d'un serveur principal ou accède aux API Google depuis votre serveur principal, vous devez transmettre l'ID client OAuth 2.0 qui a été créé pour votre serveur à la méthode requestIdToken lorsque vous créez l'objet GoogleSignInOptions, pour accéder aux informations de profil de base de l'utilisateur. . N'oubliez pas non plus d'envoyer l'e-mail d'assistance dans l'écran de consentement OAuth situé sur la page Informations d'identification de la console API.


1

Il peut également arriver que le compilateur cordova ne puisse pas trouver le fichier de keystore approprié.



Solution: avant d'exécuterionic cordova build android spécifiez les propriétés de signature

Étape 1 : générer un fichier de stockage de clés de débogage

Exécutez la commande

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Utilisez le mot de passe: android

Étape 2: Copiez le fichier keystore ( debug.keystore) de ~/.androidversplatform/android répertoire de votre projet actuel

Étape 3: Créez un fichier nommé release-signing.properties dans leplatform/android répertoire

Étape 4: Ajoutez le contenu dans le fichier

storeFile=debug.keystore
keyAlias=androiddebugkey
storePassword=android
keyPassword=android

Remarque: ce sont les valeurs par défaut. Si vous avez fourni un alias et un mot de passe personnalisés, utilisez-les en conséquence.

Étape 5: Construisez maintenantionic cordova build android


1

J'ai rencontré le même problème après avoir ouvert mon projet sur un autre ordinateur (autre Android Studio). Dans mon cas, je l'ai résolu en utilisant l'assistant Firebase, que j'avais utilisé pour configurer Firebase au départ. Ouvrez l'assistant Firebase (Outils> Firebase) et sélectionnez Authentification> Se connecter. Cela a reconnecté le projet à Firebase et mis à jour les configurations


1

J'étais coincé dans le problème de connexion à Google depuis 2 semaines, je l'ai finalement bien trié. Laissez-moi vous expliquer la raison. Le problème était lié à Firebase. Dans Firebase, ils ont mentionné un champ "email de support" comme facultatif. Mais une fois que je l'ai ajouté (n'importe lequel de vos e-mails personnels), le problème a été réglé et j'ai eu la réponse. Si vous obtenez une erreur en tant que 12501, cela est lié aux paramètres de votre compte Google.


1

J'étais coincé avec ça pendant un moment.

Assurez-vous que ces étapes sont effectuées

Correct SHA key is saved on Firebase Console.
Valid reversed client id.
from fcm console=>select app=>from authentication=>enable google sign-in method

0

Dans mon cas, c'est à cause d'un mauvais identifiant de client Google. Je change ma clé pour la clé répertoriée dans google-services.json(sous oauth_clientobjet)


0

Assurez-vous que les éléments suivants sont correctement configurés:

  1. Générez l'identifiant du client dans votre projet Google.
  2. Fournissez la clé SHA-1 appropriée pour cet ID client. (débogage / libération)
  3. Fournissez le nom de package approprié pour cet ID client.
  4. Assurez - vous que vous avez généré Id Client strings.xml, google-services.jsonou credentials.jsonfichier.

0

https://developers.google.com/identity/sign-in/android/sign-in suivez cette documentation API, mais gardez à l'esprit qu'à l'intérieur de WEB_CLIENT_ID, utilisez la valeur de l'ID client qui est générée dans le fichier google-services.json.

class MainActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener {
private val TAG = "JSAGoogleSignIn"
private val REQUEST_CODE_SIGN_IN = 1234
private val WEB_CLIENT_ID = "354298333018-XXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
private var mAuth: FirebaseAuth? = null

private var mGoogleApiClient: GoogleApiClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var txt_register = findViewById<TextView>(R.id.txt_register)
    txt_register.setOnClickListener {
        var intent = Intent(this@MainActivity, RegisterActivity::class.java)
        finish()
        startActivity(intent)
    }
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(WEB_CLIENT_ID)
            .requestEmail()
            .build()
    mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

    mAuth = FirebaseAuth.getInstance()
    sign_in_button.setOnClickListener {
        val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    }

}


override fun onConnectionFailed(p0: ConnectionResult) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


private fun updateUI(user: FirebaseUser?) {
    if (user != null) {
        Log.e("Email", "Value" + user.email)
    }

}

fun signIn() {

}

override fun onStart() {
    super.onStart()
    val currentUser = mAuth!!.currentUser
    updateUI(currentUser)
}

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if (result.isSuccess) {
            // successful -> authenticate with Firebase
            val account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        } else {
            // failed -> update UI
            updateUI(null)
            Toast.makeText(applicationContext, "SignIn: failed!" + result.status,
                    Toast.LENGTH_SHORT).show()
        }
    }
}

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
    Log.e(TAG, "firebaseAuthWithGoogle():" + acct.id!!)

    val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
    mAuth!!.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success
                    Log.e(TAG, "signInWithCredential: Success!")
                    val user = mAuth!!.currentUser
                    updateUI(user)
                } else {
                    // Sign in fails
                    Log.w(TAG, "signInWithCredential: Failed!", task.exception)
                    Toast.makeText(applicationContext, "Authentication failed!",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
}

0

Dans mon cas, après avoir ajouté une empreinte digitale dans la console Firebase, elle a été automatiquement récupérée par la console des développeurs Google et a montré les empreintes digitales. Mais la connexion n'a pas fonctionné. Après avoir examiné chaque étape, j'ai pensé que Google avait inversé mon package de fichier manifeste comme celui-ci com.xxxxxxxx.app. Mais c'est en fait app.xxxxxxxx.com, dans la console développeur de Google. J'ai donc supprimé automatiquement créé une empreinte digitale et ajouté une empreinte digitale avec le nom de package correct. BOOM!!. Ça a marché.


0

L'erreur m'est apparue lorsque l'option Google n'était pas activée, comme le montre l'image .

Cela s'est produit lorsque j'ai changé de compte Google et que j'ai oublié d'activer l'option de connexion avec Google.


0

Assurez-vous que votre projet ne doit contenir aucun caractère spécial, y compris numérique ou tout autre type de symbole (le nom du projet doit être simple comme com.google.testproject)


C'est appeler le nom du package de projet et non le nom du projet
b devloper

0

Dans mon cas, je travaillais sur une application hors production, le problème était que lors de la création d'un projet dans la console Firebase, il y avait des problèmes de synchronisation des clés SHA-1 à partir des consoles de développement Firebase et Google. J'ai donc décidé de créer le projet d'abord sur la console Google Developer, puis de le sélectionner lors de la création d'un nouveau projet sur la console Firebase.

J'ai également fait un tutoriel pour cela, qui peut vous aider.


0

Dans mon cas, le problème était que mon émulateur n'avait pas de Play Store. J'ai créé l'émulateur (nommé API 23) via Visual Studio, car je développe également à l'aide de Xamarin.Forms, et dans le gestionnaire de périphériques Android de Visual Studio, vous pouvez sélectionner si votre émulateur doit avoir Google Play Store.

J'ai dû créer un émulateur via l'AVD d'Android Studio et s'assurer qu'il avait Play Store:

entrez la description de l'image ici


0

Dans mon cas, cette erreur était là parce que l'authentification Android a été supprimée par l'équipe senior car il semble qu'il n'y ait pas besoin de clé Android dans l'authentification backend. Les clés client Android et Web sont donc nécessaires pour la connexion à Google.


-1

Essayez ces options:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

Il demande le mot de passe et entrez simplement le mot de passe. Vous pouvez voir les empreintes digitales SHA1, MD5.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.