Android集成FCM获取Token失败(FIS_AUTH_ERROR)求助
问题还原
集成FCM后调用FirebaseMessaging.getInstance().getToken()获取Token失败,Logcat抛出FIS_AUTH_ERROR异常,已添加依赖和Firebase控制台下载的google-services.json文件,Activity和Service代码逻辑无明显错误。
解决方案
以下是针对性的排查和修复步骤:
核对
google-services.json文件
确保文件是从Firebase控制台对应项目下载,且文件内的package_name与应用的applicationId完全一致;文件需放在app模块的根目录下,避免放错位置;检查api_key、project_id等核心字段是否完整有效。修复依赖配置问题
原依赖存在重复声明和版本不匹配问题,使用Firebase BOM时无需单独指定组件版本,BOM会统一管理所有Firebase组件版本。修改后的依赖如下://Firebase implementation platform('com.google.firebase:firebase-bom:31.1.0') implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-analytics' // 移除重复的firebase-analytics依赖,play-services-analytics已被firebase-analytics替代,无需额外添加同时确保项目根目录
build.gradle中的Google服务插件版本与BOM兼容,推荐使用com.google.gms:google-services:4.3.15及以上版本。补全AndroidManifest配置
确认FirebaseMessagingService已正确注册到清单文件:<service android:name=".MyFcmService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>确保应用声明了网络权限:
<uses-permission android:name="android.permission.INTERNET" />清理缓存并重新构建
执行Clean Project->Rebuild Project;清除应用缓存数据并卸载重装;重启Android Studio和测试设备。检查设备Google Play服务版本
真机需确保Google Play服务为最新版本;模拟器需选择包含Google Play的系统镜像,旧版本服务会导致认证失败。验证Firebase项目配置
登录Firebase控制台确认项目已启用Cloud Messaging服务;检查项目设置中是否添加了应用对应的SHA-1和SHA-256签名指纹(调试版和发布版需分别添加对应指纹)。
内容的提问来源于stack exchange,提问作者Dali Hasan

