Depuis la mise à niveau vers la dernière version de Firebase (9.0.0), je ne parviens pas à supprimer les deux erreurs suivantes lors de l’authentification d’un utilisateur via signInWithEmailAndPassword()
. Est-ce que quelqu'un a une idée de ce qui se passe?
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]]
Et
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)
(...)
Pouvez-vous vérifier la version de vos services Google Play?
De Firebase oficial site web :
Prérequis
J'ai eu le même problème et j'ai trouvé une erreur faite par moi dans ma console Firebase.
Une des raisons de ce problème pourrait être que votre méthode de connexion dans Firebase> Tableau de bord automatique est peut-être désactivé.
Je viens de l'activer et ça a commencé à fonctionner.
Très triste que les erreurs d’initialisation de Firebase ne soient pas si simples, les développeurs doivent donc deviner ce qui ne va pas. Dans mon cas, je n'ai importé que:
compile 'com.google.firebase:firebase-auth:10.2.0'
et j'ai oublié d'importer aussi core:
compile 'com.google.firebase:firebase-core:10.2.0'
Peut-être que ça va aider quelqu'un, bonne chance!
Je me suis déconnecté puis connecté et cela a résolu ce problème pour moi.
Probablement à partir d'une sorte de synchronisation, les éléments du FB n'ont pas été implémentés.
Si ce problème consiste, je vais essayer de l'intercepter. Mais en réalité, il s’agit d’un bogue dans le système Firebase. Et c'est un bogue causé par plus d'un cas d'utilisation, ce qui constitue un autre problème en soi.
J'ai trouvé le problème. La question était la première condition préalable mentionnée par Guilherme, mais pas la partie en caractères gras. Bien que vos dépendances doivent également indiquer explicitement 9. + de la partie des services de jeu, les périphériques eux-mêmes doivent également posséder la version 9. + installée =. Le débogage sur mon téléphone fonctionne bien et la mise à jour de l'image de mon émulateur résout également le problème.
Désactiver Instant Run a fonctionné pour moi. Cela semble ridicule, je sais. J'ai essayé de nettoyer le projet. J'ai essayé de désinstaller/réinstaller l'application. La chose qui a finalement fait le tour était de désactiver Instant Run. soupir
Cette réponse à une autre question a permis à mon application de s'authentifier
Alfonso Gomez Jordana Manas
Bonjour pierre
Vous devez manuellement ajouter à la liste blanche vos identifiants client Google OAuth 2.0 existants dans la console Firebase avant de les utiliser avec les nouvelles API Auth.
Pour ce faire, procédez comme suit:
Ouvrir la section Auth
Sous Méthodes de connexion, ouvrez la configuration Google et ajoutez tous vos identifiants de client à la liste blanche des identifiants de clients provenant de projets externes. Si vous utilisez Google Sign-In sur une application Web: Cliquez pour ouvrir votre identifiant de client Web et notez l'ID client et le secret. Entrez cet ID client dans la configuration de votre projet Firebase: Accédez à la console Firebase à l'adresse https://console.firebase.google.com . Ouvrez la section Auth. Méthodes de connexion, ouvrez la configuration de Google et ajoutez les valeurs dans la section Configuration du SDK Web.
Faites-moi savoir si cela résout votre problème.
Partage de mon expérience: je faisais face au même problème, je cherchais partout dans Google mais je ne trouvais pas la réponse exacte, même si je faisais tout ce que décrit la documentation de Google Android. Soudainement après un jour, mon application fonctionnait bien et au même moment, j'ai reçu l'email de Google indiquant "Google APIs Explorer connecté à votre compte Google". Et il me semble que Google met du temps à nous accorder l'accès, attendez simplement cet email, peut-être que ce problème n'est pas lié à un code incorrect.
J'avais un problème similaire avec l'inscription de l'utilisateur, mais j'ai finalement trouvé une solution efficace.
désinstaller le HAXM et le réinstaller résout mon problème et il réussit l'inscription de l'utilisateur à l'authentification de la base de feu :)
Si vous voulez juste utiliser l'authentification Firebase et que vous êtes arrivé à cause de l'erreur:
Impossible de trouver la classe "com.google.Android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
Accédez à https://console.firebase.google.com/project/ [votre projet] /authentication/providers et activer les fournisseurs d'authentification que vous supportez.
si vous faites tout mais que rien ne vous est donné, essayez de mettre à jour votre ARM EABI.
API Google ARM Image système EABI v7a
Si votre émulateur n'a pas de nouvelles mises à jour de lunettes, vous obtiendrez toujours une erreur d'authentification.
Faites tout ce qui est suggéré dans ce message, puis mettez à jour l'image ARM EABI. Cela a résolu mon problème.
Cela peut également se produire lorsque les empreintes digitales SHA1 ne sont pas enregistrées dans Firebase et dans l'API Google. Dans ces deux cas, ils doivent enregistrer deux empreintes digitales: à partir du fichier de clés de débogage et du fichier de clés de production (générés lorsque vous créez l'apk du projet pour la première fois lorsque vous entrez des clés de mot de passe sur Android Studio).
Ici montre comment obtenir le SHA1 à partir de là.
ou exécutez cette commande dans le répertoire C:\Users\<user name>\.Android
.
keytool -list -v -keystore debug.keystore
Vous pouvez vérifier lors de l'ajout de l'option de connexion à Google avant d'utiliser
GoogleSignInOptions gso = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
ajouter une ligne comme indiqué dans le code suivant
GoogleSignInOptions gso = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
après avoir ajouté ceci si vous obtenez l'erreur comme
An internal error has occured. [ Invalid Idp Response: id_token audience mismatch. ]
puis Cliquez ici pour trouver une solution, cela fonctionne pour moi.