java.io.IOException:Android Firebase中的FIS_AUTH_ERROR [英] java.io.IOException: FIS_AUTH_ERROR in Android Firebase

查看:418
本文介绍了java.io.IOException:Android Firebase中的FIS_AUTH_ERROR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Firebase服务出现以下错误.

  E/FirebaseInstanceId:在硬故障例外情况下,主题同步或令牌检索失败:FIS_AUTH_ERROR.不会重试该操作.D/AndroidRuntime:关闭虚拟机com.google.android.gms.tasks.RuntimeExecutionException:java.io.IOException:FIS_AUTH_ERROR位于com.google.android.gms.tasks.zzu.getResult(未知来源:15)在com.myApp.MainActivity $ 2.onComplete(MainActivity.java:349)在com.google.android.gms.tasks.zzj.run上(未知来源:4)在android.os.Handler.handleCallback(Handler.java:883)在android.os.Handler.dispatchMessage(Handler.java:100)在android.os.Looper.loop(Looper.java:237)在android.app.ActivityThread.main(ActivityThread.java:7804)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)引起原因:java.io.IOException:FIS_AUTH_ERRORcom.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid @@ 20.1.0:82)com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid @@ 20.1.0:96)com.google.firebase.iid.zzx.then(com.google.firebase:firebase-iid @@ 20.1.0:4)在com.google.android.gms.tasks.zzd.run(未知来源:5)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:641)在java.lang.Thread.run(Thread.java:919) 

这是发生崩溃的代码部分:

  FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener< InstanceIdResult>(){@Overridepublic void onComplete(@NonNull Task< InstanceIdResult>任务){if(task.getResult()!= null&& task.isSuccessful()){//获取新的实例ID令牌firebaseToken = task.getResult().getToken();prefs.edit().putString("firebaseToken",firebaseToken).apply();registerToken();}}}); 

该错误发生在onComplete中.这是我使用的Firebase依赖项:

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

我在Github上发现了

解决方案

临时但有效的解决方案.只需将 com.google.firebase:firebase-messaging:20.1.2 降级为 com.google.firebase:firebase-messaging:20.1.0 .显然,在 20.1.1 20.1.2 版本中存在某种错误.应用程序不再崩溃.

更新(11.04.2020):我在 com.google.firebase:firebase-messaging:20.1.5 中进行了测试,并且相应的问题已得到解决.


更新(26.04.2020):

我找到了永久解决方案.首先将Firebase依赖项升级到 com.google.firebase:firebase-messaging:20.1.6 .之后,从firebase下载google-services.json.用当前的替换它.之后, build>清理项目,否则您将获得

  API密钥已过期.请续订API密钥 

错误.密钥没有问题,这是Google的某种错误.如果完成了这些步骤,则将以下代码添加到您在应用程序标记的清单中声明的​​顶级Application类的onCreate中.

  FirebaseOptions选项=新的FirebaseOptions.Builder().setApplicationId("APP ID")//Analytics(分析)所需..setProjectId("PROJECT ID"))//对于Firebase安装是必需的..setApiKey("GOOGLE API KEY")//验证所必需..建造();FirebaseApp.initializeApp(this,options,"FIREBASE APP NAME"); 

您可以在Firebase中找到您的应用程序ID>项目设置.另外,如果您要调试,请不要忘记将调试 SHA-256 密钥添加到Firebase.

现在,我不再崩溃了.Firebase服务可以完美运行.

I'm getting following error with Firebase services.

 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)

Here is the part of the code where crash occurs:

        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();
                }
            }
        });

The error occurs in onComplete. Here is firebase dependencies which I use:

    // 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'

I found this issue on Github related with my crash but there is no conclusive solution at all. Does anybody encountered this kind of issue? Thanks in advance.

Note: I don't use Flutter however the error occurs without flutter too. Device is Samsung A51 with Android 10.

Note 2: Firebase removed firebase-core. Problem can be related with that.

解决方案

Temporary but working solution. Just downgrade com.google.firebase:firebase-messaging:20.1.2 to com.google.firebase:firebase-messaging:20.1.0. Apperantly, there is some kind of bug in 20.1.1 and 20.1.2 versions. App doesn't crash anymore.

UPDATE (11.04.2020): I tested in com.google.firebase:firebase-messaging:20.1.5 and apperantly problem has been fixed.


UPDATE (26.04.2020):

I found a permanent solution. First upgrade firebase dependencies to com.google.firebase:firebase-messaging:20.1.6. After that download google-services.json from firebase. Replace it with the current one. After that build > clean project otherwise you can get

API key expired. Please renew the API key

error. There is no problem with the key, it's some kind of bug of Google. If you completed these steps, add following code into onCreate of your top Application class which is you declared in manifest at the application tag.

FirebaseOptions options = new FirebaseOptions.Builder()
        .setApplicationId("APP ID") // Required for Analytics.
        .setProjectId("PROJECT ID") // Required for Firebase Installations.
        .setApiKey("GOOGLE API KEY") // Required for Auth.
        .build();
FirebaseApp.initializeApp(this, options, "FIREBASE APP NAME");

You can found your app id in the firebase > project settings. Also if you're debugging, don't forget to add the debug SHA-256 key to firebase.

Now I don't get crash anymore. Firebase services work perfectly.

这篇关于java.io.IOException:Android Firebase中的FIS_AUTH_ERROR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆