使用FCM HTTP v1 API订阅主题遇FIS_AUTH_ERROR错误求助
解决FCM主题订阅FIS_AUTH_ERROR问题
核心排查与修复步骤
检查Firebase初始化逻辑:手动构建
FirebaseOptions容易导致配置不匹配,优先依赖google-services.json自动初始化。移除你的手动初始化代码,改用默认初始化:FirebaseApp.initializeApp(this);若必须使用自定义Firebase实例,确保参数完全匹配
google-services.json内的字段:setApplicationId对应文件中client_info/mobilesdk_app_id的值setApiKey对应client/api_key/current_key的值setProjectId对应project_info/project_id的值
验证API Key权限:确保你的Google API Key已启用
Firebase Installations API和Cloud Messaging API:- 登录Google Cloud控制台,进入目标项目
- 依次打开「API和服务」→「库」,搜索并启用上述两个API
- 进入「API和服务」→「凭据」,检查该API Key的限制规则,Android端建议设置为仅允许当前应用包名访问
确认google-services.json有效性:
- 确保文件是从Firebase项目「设置」→「应用」页面下载的,且对应你的Android应用包名
- 确认文件放置在
app/根目录下,执行Android Studio的「File」→「Sync Project with Gradle Files」同步配置
统一Firebase依赖版本:在
app/build.gradle中使用兼容的最新稳定版依赖,示例:implementation 'com.google.firebase:firebase-messaging:23.4.1' implementation 'com.google.firebase:firebase-installations:17.1.1'
正确的主题订阅代码示例
需在获取FCM令牌后执行订阅操作,示例代码:
FirebaseMessaging.getInstance().subscribeToTopic("your_topic_name") .addOnCompleteListener(task -> { String logMsg = task.isSuccessful() ? "主题订阅成功" : "主题订阅失败"; Log.d("FCM_TOPIC", logMsg); });
内容的提问来源于stack exchange,提问作者Seyf
相关产品推荐
相关产品推荐

