Firebase In App Messaging报Service Fetch Error无法显示弹窗求助
根因分析
从你提供的报错日志可以定位到核心问题:Firebase Installations Service 服务请求失败,FIAM(应用内消息)需要先从该服务拉取实例标识和对应消息配置,请求失败后无法拿到要展示的消息模板,因此不会弹出任何窗口。
排查解决步骤
检查 Firebase 控制台配置
- 确认本地的
google-services.json是从对应 Firebase 项目下载的最新版本,文件内的project_id、api_key、mobilesdk_app_id字段和控制台配置完全匹配,替换文件后务必 clean 项目再重新构建,避免本地缓存的旧配置生效。 - 确认你打包用的签名(调试签名、发布签名)的 SHA-1、SHA-256 指纹都已经正确录入到 Firebase 控制台对应应用的设置页,签名不匹配会导致 Firebase 服务拒绝请求。
- 确认 Firebase 控制台的 In-App Messaging 服务已经正常开启,没有触发配额限制。
- 确认本地的
修复依赖兼容性问题
你当前使用的 Firebase 相关依赖均为2021年的旧版本,存在已知的 Firebase Installations 服务兼容性bug,建议通过 BOM 统一升级到稳定的新版本,避免版本不一致导致的冲突:
// 引入统一BOM管理版本,不需要单独指定子依赖版本号 implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-config' implementation 'com.google.firebase:firebase-inappmessaging-display' implementation 'com.google.firebase:firebase-analytics'确认运行环境合规
- 测试设备必须安装正常可用的 Google Play 服务,没有安装或者服务被禁用都会导致 Firebase 服务请求失败。
- 测试设备的网络必须可以正常访问 Google 相关服务,国内网络环境默认无法访问 Firebase 服务,会触发该报错,海外用户使用不受影响。
检查混淆规则
如果你开启了 R8/ProGuard 混淆,需要添加 Firebase 相关的保留规则,避免核心类被误裁剪:
-keep class com.google.firebase.inappmessaging.** { *; } -keep class com.google.firebase.installations.** { *; }
内容的提问来源于stack exchange,提问作者DeePanShu
相关产品推荐
相关产品推荐

