E/FirebaseInstanceId: 获取FIS身份验证令牌失败
E/FirebaseInstanceId: 获取FIS身份验证令牌失败
我按照Firebase项目的创建步骤进行了操作。\n当我运行我的应用程序时,出现以下错误:\nE/FirebaseInstanceId: 获取FIS授权令牌失败\n java.util.concurrent.ExecutionException: com.google.firebase.installations.FirebaseInstallationsException\n我已经在build.gradle中添加了必要的库\n但是仍然出现错误。是否有解决办法。\n完整的堆栈跟踪如下:\n
-11 17:31:28.460 8093-8093/com.myapp V/FA: 注册活动生命周期回调 03-11 17:31:28.510 8093-8153/com.myapp W/DynamiteModule: 未找到用于com.google.firebase.auth的本地模块描述符类。 03-11 17:31:28.550 8093-8156/com.myapp I/System.out: (HTTPLog)-Static: isSBSettingEnabled = false 03-11 17:31:28.550 8093-8093/com.myapp I/FirebaseInitProvider: FirebaseApp初始化成功 03-11 17:31:28.550 8093-8156/com.myapp I/System.out: (HTTPLog)-Static: isSBSettingEnabled = false 03-11 17:31:28.570 8093-8158/com.myapp W/DynamiteModule: 未找到用于com.google.firebase.auth的本地模块描述符类。 03-11 17:31:28.590 8093-8158/com.myapp I/FirebaseAuth: [FirebaseAuth:] 准备创建与gms实现的服务连接 03-11 17:31:28.690 8093-8093/com.myapp W/art: 在Android 4.1之前,使用android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode)会错误地覆盖android.graphics.drawable.Drawable中的package-private方法 03-11 17:31:28.700 8093-8093/com.myapp V/FA: onActivityCreated 03-11 17:31:28.720 8093-8139/com.myapp V/FA: App测量收集已启用 03-11 17:31:28.720 8093-8139/com.myapp V/FA: App测量已启用,应用程序包名称,google应用程序ID:com.myapp,1:694013098939:android:9c791b689fec2f9f78629e 03-11 17:31:28.720 8093-8139/com.myapp I/FA: App测量已初始化,版本:22048 03-11 17:31:28.720 8093-8139/com.myapp I/FA: 要启用调试日志记录,请运行:adb shell setprop log.tag.FA VERBOSE 03-11 17:31:28.720 8093-8139/com.myapp I/FA: 要启用更快的调试模式事件日志记录,请运行: adb shell setprop debug.firebase.analytics.app com.myapp 03-11 17:31:28.720 8093-8139/com.myapp D/FA: 启用调试级别的消息日志记录 03-11 17:31:28.750 8093-8093/com.myapp I/art: 拒绝在先前失败的类java.lang.Class上重新初始化 03-11 17:31:28.750 8093-8093/com.myapp I/art: 拒绝在先前失败的类java.lang.Class 上重新初始化 03-11 17:31:28.850 8093-8093/com.myapp D/TextView: 使用样式:0设置字体 03-11 17:31:28.980 8093-8093/com.myapp D/TextView: 使用样式:0设置字体 03-11 17:31:28.990 8093-8093/com.myapp I/Timeline: 时间轴:Activity_launch_request id:com.myapp time:8027824 03-11 17:31:29.150 8093-8157/com.myapp E/FirebaseInstanceId: 获取FIS授权令牌失败 java.util.concurrent.ExecutionException: com.google.firebase.installations.FirebaseInstallationsException at com.google.android.gms.tasks.Tasks.zzb(Unknown Source) at com.google.android.gms.tasks.Tasks.await(Unknown Source) at com.google.firebase.iid.zzs.zzb(com.google.firebase:firebase-iid@@20.1.1:54) at com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid@@20.1.1:89) at com.google.firebase.iid.zzv.run(com.google.firebase:firebase-iid@@20.1.1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) 原因是:com.google.firebase.installations.FirebaseInstallationsException at com.google.firebase.installations.FirebaseInstallations.doRegistrationInternal(com.google.firebase:firebase-installations@@16.0.0:333) at com.google.firebase.installations.FirebaseInstallations.doGetId(com.google.firebase:firebase-installations@@16.0.0:280) at com.google.firebase.installations.FirebaseInstallations.access$lambda$0(com.google.firebase:firebase-installations@@16.0.0) at com.google.firebase.installations.FirebaseInstallations$$Lambda$1.run(com.google.firebase:firebase-installations@@16.0.0) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)
(E/FirebaseInstanceId: Failed to get FIS auth token)这个问题的出现原因是由于旧的google-services.json
文件导致的。解决方法是删除旧的google-services.json
文件,并重新从Firebase控制台>项目设置
中下载新的google-services.json
文件。
在解决这个问题之前,我们需要了解一下google-services.json
文件的作用。这个文件是用来配置Firebase服务的文件,其中包含了与项目相关的信息,如项目的ID和API密钥等。
当我们在使用Firebase服务时,需要将google-services.json
文件放置在项目的根目录下。这样,Firebase服务就可以读取这个文件中的配置信息,从而提供相应的功能。
然而,如果我们使用的是旧的google-services.json
文件,可能会导致一些问题,比如无法获取FIS(Firebase Installations Service)身份验证令牌。这个问题的表现就是在日志中会出现(E/FirebaseInstanceId: Failed to get FIS auth token)的错误信息。
为了解决这个问题,我们可以按照以下步骤进行操作:
1. 首先,删除旧的google-services.json
文件。可以在项目的根目录下找到这个文件,并将其删除。
2. 然后,打开Firebase控制台,在项目设置中找到google-services.json
文件的下载链接。
3. 点击下载链接,将新的google-services.json
文件下载到本地。
4. 最后,将新的google-services.json
文件放置在项目的根目录下。
通过以上步骤,我们就可以更新google-services.json
文件,解决(E/FirebaseInstanceId: Failed to get FIS auth token)的问题。这样,我们就能够正常使用Firebase服务了。
,当出现(E/FirebaseInstanceId: Failed to get FIS auth token)的错误时,我们需要检查并更新google-services.json
文件,以确保配置信息正确。只需要删除旧的文件并重新下载新的文件,然后将新的文件放置在项目的根目录下即可解决该问题。