Seit dem Upgrade auf die neueste Version von Firebase (9.0.0) kann ich die folgenden zwei Fehler bei der Authentifizierung eines Benutzers über signInWithEmailAndPassword()
nicht beseitigen. Hat jemand eine Idee was los ist?
05-19 18:09:49.245 23550-23589/[PACKAGE] E/DynamiteModule: Failed to load
module descriptor class: Didn't find class
"com.google.Android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
on path: DexPathList[[Zip file
"/data/app/[PACKAGE]-3/base.apk"],nativeLibraryDirectories=
[/data/app/[PACKAGE]-3/lib/x86, /vendor/lib, /system/lib]]
Und
05-19 18:09:49.252 23550-23550/[PACKAGE] E/FirebaseApp: Firebase API
initialization failure.Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Method.invoke(Native Method)
at com.google.firebase.FirebaseApp.zza(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
(...)
Caused by: Java.lang.IncompatibleClassChangeError: The method 'Java.io.File Android.support.v4.content.ContextCompat.getNoBackupFilesDir(Android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'com.google.firebase.iid.zzg' appears in /data/data/[PACKAGE]/files/instant-run/dex/slice-com.google.firebase-firebase-iid-9.0.0_95503dc60ed409569d1585da411de93e6c633bf7-classes.dex)
at com.google.firebase.iid.zzg.zzeC(Unknown Source)
at com.google.firebase.iid.zzg.<init>(Unknown Source)
at com.google.firebase.iid.zzg.<init>(Unknown Source)
at com.google.firebase.iid.zzd.zzb(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
at Java.lang.reflect.Method.invoke(Native Method)
at com.google.firebase.FirebaseApp.zza(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
(...)
Können Sie Ihre Google Play Services-Version überprüfen?
Aus Firebase oficial Website :
Voraussetzungen
Ich hatte das gleiche Problem und fand einen Fehler in meiner Firebase-Konsole.
Einer der Gründe für dieses Problem könnte sein, dass Ihre Anmeldemethode in Firebase> Auth Dashboard deaktiviert ist.
Ich habe es gerade aktiviert und es fing an zu funktionieren.
Sehr schade, dass Firebase-Initialisierungsfehler so unkompliziert sind, dass Entwickler raten müssen, was schief gelaufen ist. In meinem Fall habe ich nur importiert:
compile 'com.google.firebase:firebase-auth:10.2.0'
und vergessen, auch Kern zu importieren:
compile 'com.google.firebase:firebase-core:10.2.0'
Vielleicht hilft es jemandem, viel Glück!
Ich habe mich abgemeldet und dann angemeldet und das Problem für mich gelöst.
Vermutlich haben sich aus irgendeiner Art von Synchronisation die FB-Sachen nicht implementiert.
Wenn dieses Problem besteht, werde ich versuchen, es abzufangen. Aber wirklich, das ist ein Fehler im Firebase-System. Und es ist ein Fehler, der durch mehr als einen Anwendungsfall verursacht wird, was ein weiteres Problem für sich ist.
Ich habe das Problem gefunden. Das Problem war die erste erwähnte Voraussetzung für Guilherme, aber nicht der fettgedruckte Teil. Obwohl Ihre Abhängigkeiten auch ausdrücklich 9. + des Abspieldienst-Teils angeben müssen, auf den Geräten selbst muss auch 9. + installiert sein =. Das Debuggen auf meinem Telefon funktioniert einwandfrei, und das Aktualisieren des Abbilds meines Emulators behebt das Problem auch dort.
Das Deaktivieren von Instant Run hat bei mir funktioniert. Klingt lächerlich, ich weiß. Ich habe versucht, das Projekt zu säubern. Ich habe versucht, die App zu deinstallieren/neu zu installieren. Die Sache, die schließlich den Trick machte, war die Deaktivierung von Instant Run. Seufzer
Diese Antwort auf eine andere Frage hat meine App authentifiziert
Alfonso Gomez Jordana Manas
Hallo Pierre,
Sie müssen Ihre vorhandenen Google OAuth 2.0-Client-IDs in der Firebase-Konsole manuell auf die Whitelist setzen, bevor Sie sie mit den neuen Auth-APIs verwenden können.
Gehen Sie dazu folgendermaßen vor
Öffnen Sie den Abschnitt Auth
Öffnen Sie unter Anmeldemethoden die Google-Konfiguration, und fügen Sie alle Ihre Kunden-IDs zur Positivliste der Kunden-IDs aus externen Projekten hinzu. Wenn Sie Google Sign-In für eine Webanwendung verwenden: Klicken Sie hier, um Ihre Web-Client-ID zu öffnen und sich sowohl die Client-ID als auch das Geheimnis zu merken. Geben Sie diese Client-ID in die Konfiguration Ihres Firebase-Projekts ein: Gehen Sie zur Firebase-Konsole unter https://console.firebase.google.com Öffnen Sie den Abschnitt Auth. Öffnen Sie unter Anmeldemethoden die Google-Konfiguration und Fügen Sie die Werte im Abschnitt Web SDK-Konfiguration hinzu.
Lassen Sie mich wissen, ob dies Ihr Problem löst.
Meine Erfahrungen teilen: Ich hatte das gleiche Problem, habe überall gegoogelt, konnte aber keine genaue Antwort finden, selbst wenn ich alles gemäß der Dokumentation zu Google Android getan habe. Plötzlich nach einem Tag funktionierte meine App einwandfrei und im selben Moment erhielt ich von Google die E-Mail mit dem Hinweis "Google APIs Explorer mit Ihrem Google-Konto verbunden". Und für mich nimmt Google einige Zeit in Anspruch, um uns Zugriff zu gewähren. Warten Sie einfach auf diese E-Mail. Vielleicht hängt dieses Problem nicht mit fehlerhaftem Code zusammen.
Ich hatte ein ähnliches Problem mit der Anmeldung des Benutzers, fand aber schließlich eine funktionierende Lösung.
Deinstalliere das HAXM und installiere es erneut behebt mein Problem und es meldet den Benutzer erfolgreich bei firebase auth an :)
Wenn Sie nur die Firebase-Authentifizierung verwenden möchten und aufgrund des Fehlers hierher gekommen sind:
Die Klasse "com.google.Android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" wurde nicht gefunden.
Rufen Sie https://console.firebase.google.com/project/ [Ihr Projekt] /authentication/providers und auf Aktivieren Sie die von Ihnen unterstützten Authentifizierungsanbieter.
wenn Sie alles tun, aber nichts erhalten, versuchen Sie, Ihr ARM EABI zu aktualisieren.
Google APIs ARM EABI v7a System Image
Wenn Ihr Emulator keine neuen Brillen-Updates hat, erhalten Sie immer einen Authentifizierungsfehler.
Tun Sie alles, was in diesem Beitrag vorgeschlagen wird, und aktualisieren Sie dann das ARM= EABI-Image. Dies hat mein Problem gelöst.
Dies kann auch vorkommen, wenn Sie die SHA1-Fingerabdrücke nicht in Firebase und in der Google-API registriert haben. Dort müssen in beiden zwei Fingerabdrücke registriert werden: aus dem Debug-Keystore und aus dem Produktions-Keystore (generiert, wenn Sie das Projekt-Apk zum ersten Mal erstellen, wenn Sie einige Kennwortschlüssel in Android Studio) eingeben. .
hier zeigt, wie man den SHA1 von dort bekommt.
oder führen Sie diesen Befehl auf C:\Users\<user name>\.Android
Verzeichnis.
keytool -list -v -keystore debug.keystore
Sie können beim Hinzufügen einer Google-Anmeldeoption auschecken, bevor wir verwenden
GoogleSignInOptions gso = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
fügen Sie eine Zeile hinzu, wie im folgenden Code gezeigt
GoogleSignInOptions gso = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
nach dem Hinzufügen dieser, wenn Sie den Fehler wie erhalten
An internal error has occured. [ Invalid Idp Response: id_token audience mismatch. ]
dann klick hier um lösung zu bekommen funktioniert das bei mir.