Ionic Capacitor/Firebase应用:FCM消息模拟器可收真机无法接收
FCM通知仅模拟器可接收,真机无法接收问题
已完成的排查操作:
- 安装打包APK到多款真机及模拟器:模拟器可接收消息,真机无法接收
- 通过Android Studio部署应用到连接的真机/模拟器:结果同上
- 代码发送(FCM或主题推送):模拟器正常,真机无效
- Firebase控制台发送测试通知:结果同上
已确认配置:
- 真机「设置→通知→应用」中通知权限已开启
- 应用包名与Firebase控制台配置完全一致(模拟器正常接收,说明基础配置无问题)
相关截图:
- 通知接收状态:

- Manifest配置:

- Android Studio模拟器接收正常:

补充:BlueStack模拟器及Android Studio自带模拟器均能正常接收,多款真机均无法接收。
排查方向与解决方案
验证设备GMS环境
FCM完全依赖Google移动服务(GMS)运行,国内非原生安卓设备大多缺失或未激活GMS。使用GMS检测工具确认设备是否具备完整GMS套件,缺失则需安装对应版本的GMS包。排查网络限制
FCM需要连接Google服务器,国内网络环境下需确认设备能否正常访问fcm.googleapis.com等相关域名。可切换境外网络测试,若恢复正常则是网络墙导致。核对APK签名信息
Firebase控制台需配置应用的SHA-1/SHA-256签名指纹,debug包与release包签名通常不同。确认打包所用签名与Firebase后台配置一致,尤其是发布版APK的签名。查看FCM运行日志
在真机上通过Android Studio的Logcat过滤FirebaseMessaging和FirebaseInstanceId标签,查看是否存在token获取失败、注册异常或消息被拦截的日志,定位具体错误原因。关闭厂商电池优化
小米、华为、OPPO等厂商系统会强制后台应用休眠,导致FCM服务终止。进入「设置→电池→电池优化」,将应用设为「不允许优化」,同时开启应用后台运行权限。确认消息类型与处理逻辑
- 通知消息:由FCM SDK自动展示,需确保应用未被系统完全杀死。
- 数据消息:需在
FirebaseMessagingService中自行处理并展示通知,后台状态下可能无法触发。
内容的提问来源于stack exchange,提问作者cup cake
相关产品推荐
相关产品推荐

