Neu Google Anmelden in Android

Ich versuche, mithilfe der neuen Google Play Services 8.3 eine Nutzer-Token-ID zu erhalten, und dokumentiere die Server-ID wie folgt:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.server_client_id)) .requestEmail() .build(); 

aber ich bekomme immer noch ein un erfolgreiches Ergebnis wie folgt:

 {statusCode=unknown status code: 12501, resolution=null} 

und dokumentiert hier GoogleSignInStatusCodes

Die Anmeldung wurde vom Benutzer abgebrochen. dh der Benutzer hat einige der Anmeldeauflösungen storniert, z. B. Kontoabholung oder OAuth-Zustimmung.

Konstanter Wert: 12501

Das ist nicht mein Fall, da ich bereits einen Account ausgewählt habe. Irgendeine Idee, was könnte der Grund sein?

Ich hatte genau das gleiche Problem und ich habe die Lösung gefunden.

Folgen Sie der Dokumentation, die Sie hier finden: https://developers.google.com/identity/sign-in/android/start-integrating

Im ersten Schritt werden Sie aufgefordert, die Konfigurationsdatei zu erstellen (die eine OAuth 2.0-Client-ID für Sie erstellt und in die Datei google-services.json einfügt).

Dann wird später noch einmal über das Erstellen einer OAuth 2.0-Client-ID geschrieben, aber dieses Mal heißt es, dass Sie dies für die Webanwendung tun müssen

Und das ist der verwirrende Teil! (zumindest für mich), weil ich gerade die Client-ID für das Android-OAuth erstellt habe und keine neue für die Web-Anwendung erstellt habe (ich dachte, die Dokumentation wäre einfach überflüssig oder so)

Wie es heißt, ist es dieser und nur dieser, den Sie als Parameter der Methoden requestIdToken oder requestServerAuthCode verwenden müssen .

Vergessen Sie nicht, die Android-OAuth-ID in diesen Methoden zu verwenden, denn dann erhalten Sie die ganze Zeit die hässliche Statuscodeantwort 12501.

Ich denke, das Hauptproblem ist, dass die Dokumentation ein wenig verwirrend ist. Oder vielleicht, weil es etwas komisch ist, dass Sie zwei OAuth-IDs erstellen müssen.

Als Zusammenfassung benötigen Sie also ZWEI OAuth-IDs, eine für Android und eine für eine Webanwendung, und Sie müssen jede an der richtigen Stelle festlegen.

Ich hatte damit zu kämpfen und verschwendete fast eine Woche darin.

So habe ich es funktioniert.

  1. Importieren Sie das Projekt in AndroidStudio
  2. Erstellen Sie Debug-Keystore für Projekt.
  3. Erstellen Sie die SHA1-Signatur für das Projekt mithilfe des Debug-Keystores.
  4. Verwenden Sie die SHA1-Signatur und registrieren Sie Ihre App für Google Signin in der Google Developer Console.
  5. Generieren Sie dort eine Google-Konfigurationsdatei. (Legen Sie den App-Ordner von Android Studio ein.)
  6. Verwenden Sie die Web-Client-ID aus OAuth 2.0-Anmeldeinformationen in Ihrem Android-Projekt.
  7. Generieren Sie jetzt in Android Studio den Debugbuild (APK) Ihres Projekts.
  8. Hängen Sie das Gerät in Ihr System ein -> kopieren Sie diese signierte Debug-Version von APK und installieren Sie sie.

Die letzten drei Schritte 6, 7 und 8 sind das, worauf Sie wirklich achten müssen. Wenn Sie das Projekt direkt ausführen, ist APK nicht wirklich mit dem Debug-Keystore signiert und Google erkennt es überhaupt nicht.

Ich hatte das gleiche Problem, nach der Forschungslösung wurde wieder aufgenommen, dass server_client_id einen falschen Wert enthielt oder Ihre google_services.json nicht oauth_client mit client_id enthielt, das in Ihrem Keystore registriert war.

 requestIdToken(getString(R.string.server_client_id)) 

R.string.server_client_id verwendet die OAuth 2.0-Client-ID für die Webanwendung . Und die OAuth-Client-ID für Android wird in google_services.json verwendet

In der Regel verwenden wir 2 Keystore, 1 mit Debug Keystore und 1 mit signierten Keystore für veröffentlicht. Wenn Sie also im Debug- und Veröffentlichungsmodus arbeiten möchten, registrieren Sie Ihre OAuth-Client-ID für Android zweimal, 1 indem Sie SHA1 aus dem Debug-Keystore und 1 aus dem signierten Keystore für die Veröffentlichung verwenden.

kleines Beispiel in meinem google_services.json

  "oauth_client": [ { "client_id": "xxx-client-id.com", "client_type": 1, "android_info": { "package_name": "com.app.android", "certificate_hash": "xxxhash" } }, { "client_id": "yyy.client-id.com", "client_type": 1, "android_info": { "package_name": "com.app.android", "certificate_hash": "yyyhash" } } ], 

Ich bekam das gleiche Problem, weil ich die Client-ID des Anwendungstyps Android erstellt hatte

Stattdessen löschte ich es und erstellte Client-ID vom Typ Web-Anwendung, und ich habe dieses Problem los.

Finden Sie heraus, wie Sie das Problem lösen können … Ich habe diesen Fehler erhalten, als ich versucht habe, die Debug-Version meiner App auszuführen … Um das Problem zu beheben, fügen Sie einen Berechtigungsnachweis für Ihre Debug-App auf der Entwicklerkonsole und auf den Google-Diensten hinzu .json.

Das hat es für mich repariert!

Ich hatte das gleiche Problem, und ich triggerse mit der folgenden Lösung:

  1. Erstellen Sie die Konfigurationsdatei (google-services.json) wie hier beschrieben und platzieren Sie sie in Ihrem / app-Projektverzeichnis
  2. (Wie in anderen Antworten erwähnt) Verwenden der Client-ID der requestIdToken für die requestIdToken Methode.
  3. [Mein Hauptproblem] Unterschreiben Sie Ihre App, wenn Sie im Debug-Modus wie folgt arbeiten:
  signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" } } buildTypes { release { ... } debug { ... signingConfig signingConfigs.release } } 

In meinem Fall musste ich auch überprüfen, ob der Debug-SHA-1 als gültiger OAuth-Android-Client hinzugefügt wurde.

Verwenden Sie die Webanwendung als server_client_id nicht als Android-Anwendung

Ich hatte das gleiche Problem und ich bemerkte, dass 12501-Code zurückgegeben wurde, wenn meine server_client_id einen falschen Wert enthielt.

Da es keine detaillierte Nachricht gibt und die Dokumentation dieses Fehlercodes ziemlich schlecht ist, weiß ich nicht, ob Ihr Problem die gleiche Ursache hat wie meine.


Meine Anwendung basiert auf Android-Code aus diesem Beispiel (class IdTokenActivity). Damit es funktioniert, musste ich auch die Google-Anmeldung in meine App integrieren:

  • generierte JSON-Konfigurationsdatei mit aktivierter Google-Anmeldung
  • Google-Plugin und Abhängigkeit zu meiner Gradle-Datei hinzugefügt
  • habe die OAuth-Client-ID für diese App erstellt und in meinem Projekt als server_client_id

Ist deine apk im Debug-Modus? Ich denke, es funktioniert nur mit einer signierten Apk.

  1. Folgen Sie dem mehrdeutigen Google-Dokument.
  2. Setzen Sie google-services.json in Ihr Projektverzeichnis
  3. Legen Sie Ihre Größe als https://Stackoverflow.com/a/35216421/5886475 fest

  4. Legen Sie server_client_id in string.xml fest. Es ist Ihre Web-Client-ID, nicht der Android-Client

Ein Problem, das ich hatte, ist, dass der SHA-1 ich wie mit dem falschen Alias ​​erzeugte. Der Alias muss androiddebugkey sein . Also habe ich die Android-OAuth-ID in meiner google-service.json- Datei abgelegt. Ich habe die Web-Client- ID an requestIdToken () gestellt . Und in meinem speziellen Fall habe ich den SHA-1 mit androiddebugkey Alias generiert .

google-services.json :

 "oauth_client": [ { "client_id": "ANDROID OAUTH ID-.....apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "br.com.packagename", "certificate_hash": "SHA-1 HASH" } },{ "client_id": "WEB CLIEND ID......apps.googleusercontent.com", "client_type": 3 } ] 

Unterzeichnender Teil:

 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken("WEB CLIEND ID......apps.googleusercontent.com") .requestEmail() .build(); 

Verwenden R.string.default_web_client_id anstelle von R.string.server_client_id einfach R.string.default_web_client_id .

Wenn Sie die Datei google-services.json in die App kopieren, wird dieser Zeichenfolgewert automatisch erstellt. Sie müssen den Schlüssel von google-services.json nicht in string.xml kopieren. Es funktionierte für mich.

Ich habe dieses Problem getriggers, indem ich in Android Studio auf Firebase Support geklickt habe, was für Nicht-Firebase-Benutzer möglicherweise nicht relevant ist.

  1. Gehe zum Menü Extras-> Firebase
  2. Klicken Sie auf Ihre App mit Firebase verbinden. Wenn die Verbindung erfolgreich hergestellt wurde, wird sie als Verbunden angezeigt
  3. Klicken Sie auf Firebase-Authentifizierung hinzufügen, um Ihre App-Schaltfläche, wird es auch grün.

HINWEIS: Eine große Liste von Antworten in diesem definitiv bestätigen eine Sache. Google muss die Dokumentation aktualisieren und sie narrensicher machen.

Jetzt hab ich es verstanden.

Zuerst müssen Sie den oberen Antworten folgen und sagen:

  1. Erstellen Sie eine OAuth-Client-ID für Webanwendungen in der Google Developers Console und verwenden Sie sie in requestIdToken() ( requestIdToken() Statuscode 12501).
  2. Wenn Sie eine Android-OAuth-Client-ID für Ihren Produktions-Hash-Schlüssel erstellt haben, erstellen Sie eine neue Android OAuth-Client-ID für Ihren Debug-Hash-Schlüssel und integrieren Sie sie in Ihre Google-Dienste.json. (Statuscode 12500 loswerden)

Nicht mehr gültig Und hier kommt der letzte Teil: 3. Sie können requestIdToken() und requestEmail() nicht gleichzeitig aufrufen. Zumindest in meinem Fall habe ich Result: Status{statusCode=INTERNAL_ERROR, resolution=null} durch Löschen von requestEmail() .

Also viel Glück…

Wenn keine der oben genannten Optionen funktioniert, prüfen Sie, ob die Anwendungs-ID in App build.gradle die gleiche ist wie der Name des Pakets.

Überprüfen Sie zuerst Ihre Freigabe sha1 Schlüssel ist korrekt oder nicht. Wenn es aber immer noch nicht funktioniert und Sie Google Play Services 8.4.0 verwenden (zB compile ‘com.google.android.gms: play-services: 8.4.0’), könnte das Problem durch Ändern des GoogleSignInOption-Objekts behoben werden. Anstatt von:

 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken("YOUR_WEB_API_ID.apps.googleusercontent.com") .build(); 

Sie müssen Folgendes verwenden:

 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestScopes(new Scope(Scopes.PLUS_LOGIN)) .requestScopes(new Scope(Scopes.PLUS_ME)) .requestEmail() .build(); 

Dies triggers einen Fehler, der statusCode = INTERNAL_ERROR OR statusCode = Fehler 12501 OR statusCode = Fehler 12500 zurückgibt. Dann könnte dieses gso-Objekt für die Erstellung von GoogleApiClient verwendet werden, wie unten gezeigt:

  mGoogleApiClient = new GoogleApiClient.Builder(this) .enableAutoManage(this, this) .addApi(Auth.GOOGLE_SIGN_IN_API,gso) // .addApi(Plus.API, null) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) // .addScope(Plus.SCOPE_PLUS_LOGIN) .build(); 

Ich weiß nicht warum, aber SHA1 in Android Studio wird automatisch geändert und deshalb bekomme ich diesen Fehler. Um das zu lösen, habe ich die SHA1 meiner Firebase-Projekteinstellungen mit der neuen SHA1 meines Android-Studios aktualisiert und es hat wieder angefangen zu arbeiten.

In meinem Fall enthielt meine Anmeldedaten für die Client ID for Android auf der Google APIs-Konsole nur die SHA-1 für meine Version signierte APK . Android Studio verwendete den Standard-Debug-Keystore zum Signieren meiner Debug-Builds. In diesem Fall stimmte der Debug-Keystore SHA-1 nicht mit dem Android-Client SHA-1 online überein. Meine Lösung bestand darin, die Debug-Builds einfach mit dem Release-Keystore zu signieren.

Build/Edit Build Types... in Android Studio Build/Edit Build Types... , wählen Sie dann den Debug-Buildtyp und stellen Sie sicher, dass Signing Config auf Ihr Freigabezertifikat eingestellt ist.

Signing Config ist auf Freigabe eingestellt

Ich hatte das gleiche Problem und Fehler 12501 und nicht von oben funktionieren nicht für mich.

Mein Problem war, dass ich Google Standard-Web-API verwendete , das für mich erzeugte. nach dem Erstellen meiner eigenen Web-API-Fehler verschwand und funktionierte gut!

Dies sind Arbeitsschritte:

  1. Zuerst habe ich den SHA1-Debug-Key erstellt und zur Firebase- Konsole hinzugefügt. Erstellen von SHA1 von hier .
  2. Erstellen Sie von hier aus sowohl die Web API als auch die androide OAuth 2.0 Client ID
  3. Erstelle google-service.json von der Firebase- Konsole und lege ihn in den App-Ordner.
  4. GoogleSignnOption diesen Code für GoogleSignnOption

so was:

 gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken ("put the web app client Id that get from the link in developer console ") .requestEmail().build(); 

Tipp 1: Ich finde, dass Sie beide Android und Web-App-Client-ID erstellen müssen, um zu arbeiten.

Tipp 2: Wenn du aus dem Iran AuthWithGoogle , kannst du den Nutzer von Google holen, aber du kannst nicht AuthWithGoogle und das Ergebnis wird in auth.signInWithCredential(credential) fail und du musst einen Proxy verwenden, um true zurück zu geben.

Dies ist die funktionierende vollständige Quelle von FireBaseAuthDemo in GitHub:

Bildbeschreibung hier eingeben

hoffe Hilfe voll

Wenn Sie den Debug-Keystore zum Erstellen des Projekts verwenden, müssen Sie den SHA-1-Fingerabdruck von debug.keystore in Firebase Console hinzufügen.

  1. Öffnen Sie auf Ihrer Firebase-Konsole Ihr Projekt
  2. Gehe zu Parameter. Registerkarte Allgemein
  3. Am Ende dieser Seite gibt es ein Feld zum Hinzufügen eines Fingerabdrucks SHA-1
  4. Fügen Sie den SHA-1 in das Konsolenfeld ein.

Um SHA-1 von debug.keystore zu erhalten:

Mac / Linux:

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

Windows:

  keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore 

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

Das ist alles !

Ich hatte dieses Problem auch, nachdem ich den statementen von Google zur automatischen Signierung Ihrer App gefolgt war . Wenn Sie diese Methode zum Signieren Ihrer Apps verwenden, müssen Sie den generierten Keystore-Fingerabdruck in Ihre API-Anmeldedaten aufnehmen.

Klicken Sie im Projektbrowser mit der rechten Maustaste auf Ihre App und wählen Sie Moduleinstellungen öffnen.

Screenshot der Einstellungen für offene Module | App | Unterzeichnung | Konfig

Ich fand es weniger verwirrend, die .jks Datei in das Verzeichnis /app meines Projekts zu .jks . In jedem Fall führe diese Zeile darauf aus.

 keytool -list -v -keystore /home/user/keystores/android.jks 

Sie werden nach einem Passwort gefragt. Nicht sicher, ob es das Key Password oder das Store Password weil meins das selbe ist. : |

Die Konsole wird eine Reihe von Zertifikat-Fingerabdrücken ausspucken. Nimm den SHA1 und gib ihn in die Google API Developer’s Console ein . Sie müssen es für die OAuth 2.0 client IDs des Android-Clients eingeben, auch wenn Sie diese client_id nicht in Ihrer App verwenden. Wenn Sie andere APIs für Android verwenden, fügen Sie denselben SHA1 in die entsprechenden Schlüsselanmeldeinformationen unter API keys .

Hier ist ein neuer. Ich habe 6 Stunden lang versucht, mich auf dem Emulator mit der ID meiner Google Apps-Unternehmensdomäne einzuloggen, ohne Erfolg zu haben und 12501-Fehler zu erhalten. Auf eine Ahnung habe ich meine persönliche Gmail-ID ausprobiert und es hat funktioniert. Dito, wenn ich mein Telefon mit meiner Unternehmensidentifikation versuchte. Es stellt sich heraus, dass der Emulator nicht über die richtigen Einstellungen für die Verwaltung mobiler Geräte verfügt, damit sich meine Unternehmens-ID anmelden kann.

Wenn ich also mit dieser Unternehmens-ID auf dem Emulator testen möchte, muss ich den Google Play Store und dann die MDM-Software installieren und konfigurieren.

Aus meiner seltsamen Erfahrung mit diesem Fehler kann ich sagen, dass Sie auch versuchen müssen, Ihr Telefon neu zu starten, um diesen Fehler loszuwerden 🙂 Ich wurde implementiert Google Anmeldung mit G Suite-Konten, die eine Geräte-Richtlinie über Google Admin zugewiesen haben . Bei der ersten Anmeldung musste die Device Policy App installiert werden. Nachdem alle späteren Schritte abgeschlossen waren, warf es nur 12501 Fehler. Zur selben Zeit funktionierte die gleiche App auf anderen Telefonen. Also nur Neustart half. Aber geholfen

Obwohl in dieser Frage bereits viele neue Antworten existieren, hatte ich Mühe, die Logik zu verstehen. Also, ich habe meine Nachforschungen gemacht.

Um SHA-1 zu erhalten, führe dies im Terminal aus:

 keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v 

Informationen zu OAuth 2.0 client IDs

  • OAuth für das Web (In der App wird dies als server_client_id )
  • OAuth für Android (Dies muss unter Verwendung des korrekten Paketnamens und des Signaturzertifikats-Fingerabdrucks SHA-1 erstellt werden ).

Wenn Sie den unterschiedlichen Keystore für Debug & Release verwenden, müssen Sie separate OAuth 2.0 client IDs mit dem entsprechenden Paketnamen & SHA-1 erstellen.

Sie können Ihre OAuth 2.0 client IDs hier https://console.developers.google.com/apis/credentials?project= erstellen oder bearbeiten

  1. Navigieren zu Ihrer App
  2. Wenn Sie bereits ein OAuth für Android haben, klicken Sie auf seinen Namen und überprüfen Sie den Paketnamen & SHA-1 .

Wir können denselben Keystore sowohl für das Debuggen als auch für das Release verwenden, indem Sie die Keystore-Details in globalen (lokalen, nicht innerhalb des Projekts) gradle.properties und in build.gradle wie unten beschrieben build.gradle .

 def key_alias = "" def key_password = "" def store_file = "" def store_password = "" try { key_alias = YOUR_KEY_ALIAS key_password = YOUR_KEY_PASSWORD store_file = YOUR_KEYSTORE_PATH store_password = YOUR_KEYSTORE_PASSWORD } catch (Exception exception) { throw new IllegalStateException('Failed to find key store details. Social Login is disabled'); } android { signingConfigs { config { keyAlias key_alias keyPassword key_password storeFile file(store_file) storePassword store_password } } buildTypes { debug { signingConfig signingConfigs.config // ... } release { signingConfig signingConfigs.config // ... } } } 

Sie können das folgende Snippet verwenden

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_GOOGLE_SIGN_IN) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); if (result.isSuccess()) { // ... } else if (result.getStatus().getStatusCode() == CommonStatusCodes.NETWORK_ERROR) { // No internet connection } else if (result.getStatus().getStatusCode() == CommonStatusCodes.DEVELOPER_ERROR) { // Wrong server OAuth key(server_client_id) } else if (result.getStatus().getStatusCode() == 12501) { // Wrong app signing-certificate fingerprint SHA1 } else { Log.e("Google sign in error", result.getStatus().toString()); } } } 

Hinweis: Wenn Sie beim Generieren der Konfigurationsdatei nur Google Sign-In aktiviert haben, müssen Sie die Datei google-servies.json in Ihrem Projekt hinzufügen (das Generieren der Datei führt die erforderlichen Konfigurationsschritte aus).

Versuchen Sie, die folgenden Schritte auszuführen:

  1. Klonen Sie das folgende Projekt https://github.com/googlesamples/google-services

  2. Folgen Sie dem Leitfaden unter https://developers.google.com/identity/sign-in/android/start

  3. Verwenden Sie den Webclient (automatisch erstellt von Google Service) und fügen Sie ihn in requestIdToken (…) hinzu.

     GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken("YOUR_WEB_API_ID.apps.googleusercontent.com") .build(); 
  4. Stellen Sie sicher, dass Sie denselben Keystore verwenden, der zum Google-Projekt hinzugefügt wurde. Zum Beispiel, wenn Sie den folgenden Befehl verwendet haben, um den Schlüssel SHA-1 zu generieren

     keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore 
  5. Dann fügen Sie den folgenden Code in app / build.gradle Datei in Android {…} [triggerse mein Problem]

     signingConfigs { debug { storeFile file("/home/ashwin/.android/debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { signingConfig signingConfigs.debug } } 

Hinweis: Ihr keyPassword und keyAlias ​​sollten bei der Generierung des SHA-1-Zertifikats identisch sein.

1. Geben Sie signingConfigs in Ihrer GRADLE-Datei an

 signingConfigs { config { keyAlias 'appalias' keyPassword 'hunter123' storePassword 'hunter123' storeFile file('path/to/keystore.jks') } } 

2.Gehen Sie zum Erstellen von Typen in der Projektstruktur (in Android Studio) und geben Sie signingConfigs zu “config”

Säubern Sie jetzt Ihr Projekt und bauen Sie es erneut auf. Es sollte funktionieren.

Wenn das oben genannte nicht funktioniert, dann ist unten Ihr letzter Ausweg.
Versuchen Sie Schritt eins und bauen und prüfen Sie. Wenn es nicht funktioniert, gehe zum nächsten Schritt und versuche erneut zu bauen.

  1. Erstellen Sie eine signierte APK (mit Passwort vergessen markiert).
  2. Vor dem Unterschreiben überprüfen Sie den Dateinamen der Keystore-Datei und den, den Sie beim Signieren der apk (in android studio) eingeben.
  3. Installiere die signierte APK in deinem Gerät.
  4. Warte fünf Minuten.
  5. Versuchen Sie, in Google zu singen. Wenn noch 12501 kommt, warten Sie noch fünf Minuten. Während dies geschah, wurde die Gradle-Synchronisierung durchgeführt.
  6. Versuch es noch einmal. Es sollte funktionieren.

Da die App Google anfordert, sich über die Web-Ansicht anzumelden, müssen wir die Web Application Auth Client-ID v2.0 erstellen

  1. Gehen Sie zu Google API-Anmeldeinformationen

    Wählen Sie Ihr Android-Projekt aus der oberen linken Ecke

    2

  2. Klicken Sie auf Create Credentials -> OAuth Client ID -> Wählen Sie Web Application

  3. OK klicken

  4. Wenn Sie Android Studio jetzt mit Firebase synchronisiert haben (eingeloggt), erstellen Sie das Projekt einfach neu. Ansonsten Laden Sie die aktualisierte Datei google-services.json herunter und ersetzen Sie die vorhandene Datei.

    Es sollte gut funktionieren.

Ich habe dasselbe Problem auch, wurde wie folgt getriggers:

  1. Ich wurde gemacht, um die SHA1 vorher zu löschen und neue SHA1 zu erstellen und zu setzen.

  2. Generiere new google-services.json und setze es in mein App-Verzeichnis

  3. Ich habe genau google developer codes benutzt

  4. Mein result.isSucces() nach dem Ausführen des Projekts true zurückgegeben

Als Zusammenfassung, lösche altes sha1 und erstelle neues sha1 und lade neues google-services.json herunter

Ich hatte denselben 12501 status . Dies liegt an der SHA-1-Nichtübereinstimmung von Release-APK und Debug-APK.

  1. Mach ein unterschriebenes APK. Um ein APK zu signieren, wählen Sie den vorhandenen Pfad des Keystores, den Sie für die Erstellung von SHA-1 verwendet haben. zB /.android/debug.keystore
  2. Gib Alias-Name: androiddebugkey
  3. storepass und keypass: Android.