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
Aaron
la source
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.

Strauss
la source
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

Maddu Swaroop
la source
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.

Niyas Nazar
la source
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

Vijay
la source
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.

zub0r
la source
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

Fauzi Danartha
la source
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.
Pranjal Gupta
la source
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.

Paul Zhang Ising
la source
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!

Paulo Taylor
la source
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)).

algrid
la source
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

Nishant Rai
la source
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).

Bioz Nguyen
la source
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.

Denn
la source
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.

peresisUser
la source
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.
Erluxman
la source
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.

Sridhar Shanmugam
la source
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

Debojyoti
la source
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

allo
la source
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.

Kevin
la source
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
Sumit Kumawat
la source
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)

Thuanle
la source
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.
Chintan Shah
la source
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)
                }
            }
}
Vajani Kishan
la source
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é.

Naroju
la source
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.

Yonibagi
la source
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)

Sekhon123
la source
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.

Zain
la source
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

Roseau
la source
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.

Débardeur Himani
la source
-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

Srini
la source