web-dev-qa-db-fra.com

java.io.IOException: FIS_AUTH_ERROR dans Android Firebase

J'obtiens une erreur de suivi avec les services Firebase.

 E/FirebaseInstanceId: Topic sync or token retrieval failed on hard failure exceptions: FIS_AUTH_ERROR. Won't retry the operation.
 D/AndroidRuntime: Shutting down VM
    com.google.Android.gms.tasks.RuntimeExecutionException: Java.io.IOException: FIS_AUTH_ERROR
        at com.google.Android.gms.tasks.zzu.getResult(Unknown Source:15)
        at com.myApp.MainActivity$2.onComplete(MainActivity.Java:349)
        at com.google.Android.gms.tasks.zzj.run(Unknown Source:4)
        at Android.os.Handler.handleCallback(Handler.Java:883)
        at Android.os.Handler.dispatchMessage(Handler.Java:100)
        at Android.os.Looper.loop(Looper.Java:237)
        at Android.app.ActivityThread.main(ActivityThread.Java:7804)
        at Java.lang.reflect.Method.invoke(Native Method)
        at com.Android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.Java:493)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1068)
     Caused by: Java.io.IOException: FIS_AUTH_ERROR
        at com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid@@20.1.0:82)
        at com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid@@20.1.0:96)
        at com.google.firebase.iid.zzx.then(com.google.firebase:firebase-iid@@20.1.0:4)
        at com.google.Android.gms.tasks.zzd.run(Unknown Source:5)
        at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1167)
        at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:641)
        at Java.lang.Thread.run(Thread.Java:919)

Voici la partie du code où le crash se produit:

        FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (task.getResult() != null && task.isSuccessful()) {
                    // Get new Instance ID token
                    firebaseToken = task.getResult().getToken();
                    prefs.edit().putString("firebaseToken", firebaseToken).apply();
                    registerToken();
                }
            }
        });

L'erreur se produit dans onComplete. Voici les dépendances Firebase que j'utilise:

    // FIREBASE
implementation 'com.google.firebase:firebase-analytics:17.2.3'
implementation 'com.google.firebase:firebase-messaging:20.1.2'
implementation 'com.google.firebase:firebase-appindexing:19.1.0'
implementation 'com.google.firebase:firebase-ads:19.0.0'
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta01'

J'ai trouvé ce problème sur Github lié à mon crash mais il n'y a pas du tout de solution concluante. Quelqu'un a-t-il rencontré ce genre de problème? Merci d'avance.

Remarque: je n'utilise pas Flutter mais l'erreur se produit également sans scintillement. L'appareil est Samsung A51 avec Android 10.

Remarque 2: Firebase a supprimé firebase-core. Le problème peut être lié à cela . enter image description here

7
Aykut Uludağ

@ mahdi-malv, @ ambrose-bako, @steeve ont raison.


Firebase Android SDK mises à jour le 27 février (M65) et a ensuite introduit un nouveau service d'infrastructure, le SDK d'installation Firebase, qui est livré avec une dépendance sur Firebase API d'installations .
Les installations Firebase nécessitent des options Firebase valides API key, project ID, et application ID (a.k.a. "appId") afin de communiquer avec succès avec les serveurs Firebase.

Des erreurs lors de la communication avec l'API d'installation Firebase indiquent des options Firebase non valides ou des erreurs de configuration concernant les clés API.

Pour atténuer le problème

  • assurez-vous que votre application utilise des options Firebase valides de la dernière version google-services.json fichier de votre console Firebase: options Firebase: instructions et arrière-plan .
  • Si tu utilises API restrictions, assurez-vous que la clé API utilisée par votre application est dans la liste blanche pour l'API Firebase Installations (et pour votre application): restrictions API: instructions et arrière-plan
  • En ce qui concerne Application restrictions: Définissez le bouton radio sur None ou assurez-vous que votre application est sur la liste blanche (avec le bon SHA-1 certificate).

Pour plus de détails, veuillez visiter:
https://firebase.google.com/support/privacy/init-options

1
Andreas Rayo Kniep

J'ai trouvé une solution à ce problème

1) dans Android Studio, dans le panneau de gauche "Projet" swich Android vue en vue Projet

2) copiez le fichier google-services.json PAS dans le dossier "app" (comme indiqué dans les instructions) ... mais copiez ce fichier dans le dossier racine supérieur

et ça fonctionnera

0
APPLA.RU

Juste au cas où, renommé le nom du package, supprimé google-services.json, et aller dans firebase vérifié firebase-database (lecture\écriture).

Ensuite, j'ai supprimé l'ancien package et son hachage des paramètres du projet Firebase, après avoir ajouté un nouveau package et un hachage, a reçu un nouveau google-services.json, après cela tout a fonctionné

Je pense que l'erreur est qu'un package a été spécifié dans firebase mais il n'y avait pas de hachage

0
0 cęĥ

Nous rencontrons également ces mêmes problèmes après le passage récent d'UrbanAirship à FCM et après avoir parcouru ce fil, certains points restent un peu flous.

Premièrement, nous manquions le SHA1/SHA256 dans les paramètres de la console/du projet Firebase, nous les avons maintenant ajoutés. Suite à cette étape, nous avons également téléchargé le google-services.json mis à jour à partir du même endroit. Je ne suis pas tout à fait sûr si cela faisait partie du problème.

Deuxièmement, comme nous sommes sur le point de sortir dans quelques jours, je veux essayer la solution qui a été votée ici, pour initialiser FirebaseApp à l'aide de FirebaseOptions. Après vérification https://firebase.google.com/support/privacy/init-options cela semble être répertorié comme la deuxième solution. Nous avions déjà le json et cela n'a pas fonctionné pour nous.

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setApplicationId(FIREBASE_APP_ID)
                .setProjectId(FIREBASE_PROJECT_ID)
                .setApiKey(FIREBASE_API_KEY)
                .build();
        FirebaseApp.initializeApp(this, options, "UNIQUE APP NAME");

Le FIREBASE_APP_ID se trouve dans la mise à jour google-services.json sous la clé "mobilesdk_app_id". Il peut également être retiré de la console Firebase - Paramètres du projet comme quelqu'un déjà mentionné dans ce fil (au même endroit que le json).

Le FIREBASE_PROJECT_ID est l'identifiant unique du projet Firebase, se trouve dans la console Firebase.

Maintenant, ma confusion vient de ce qui suit: FIREBASE_API_KEY: Il y a une clé API Web dans la console Firebase, et il y a aussi un "api_key"/"current_key" dans google-services.json. Ces deux formats partagent des formats similaires, mais ils sont différents. La clé google-services.json est également la même que la clé répertoriée dans la console google/API et services/informations d'identification. Je ne sais pas lequel de ceux-ci utiliser. En parlant de cela, il n'y avait aucune restriction sur ces clés, donc l'erreur ne vient pas de là.

Et que dire de UNIQUE APP NAME, le 3ème paramètre de la méthode d'initialisation. Cela fait-il référence à quelque chose en particulier ou devrais-je simplement utiliser par exemple le nom du projet de la console Firebase. J'ai vu que je peux même entrer "test" sans aucune conséquence.

J'apprécierais toute aide que vous pouvez offrir pour comprendre ces deux choses. Je vous remercie.

0
Cosmin C.