You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase FCM推送通知在Android设备上接收不一致问题求助

解决部分Android设备无法接收FCM推送的配置方案

针对你遇到的Ionic应用通过Pigeon Elixir发送FCM推送时,部分Android设备收不到通知(iOS正常、FCM返回成功)的问题,以下是几个可落地的配置调整和排查方向:

  • 补充Android专属消息配置
    Android 8.0+对通知有严格的通道要求,且默认消息优先级可能导致推送被系统拦截。在消息负载中添加android节点,配置以下关键参数:

    • priority: 设置为high,确保推送能优先送达,避免被省电策略延迟或拦截
    • notification.channel_id: 指定应用已创建的通知通道ID(需在Ionic应用中提前配置好对应通道)
    • 可选:添加ttl设置推送的存活时间,避免过期消息无法送达

    修改后的消息负载示例:

    {
      "message": {
        "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
        "notification": {
          "title": "Test title",
          "body": "Test message"
        },
        "data": {
          "notification_id": "123"
        },
        "apns": {
          "payload": {
            "aps": {
              "badge" : 1
            }
          }
        },
        "android": {
          "priority": "high",
          "notification": {
            "channel_id": "your_app_default_channel",
            "sound": "default"
          }
        }
      }
    }
    
  • 验证Pigeon Elixir的配置正确性
    确认Pigeon库是否正确支持传递Android的配置参数:

    • 检查Pigeon的版本,建议升级到最新稳定版,避免旧版本的兼容性问题
    • 确保在Elixir代码中正确构造了android相关的消息结构体,而非仅传递基础的notification和data字段
  • 设备端的关键排查点
    部分Android设备的系统限制是推送丢失的常见原因:

    • 检查设备的Google Play服务版本,FCM依赖该服务,版本过低会导致推送失败
    • 引导用户关闭应用的电池优化权限,部分省电模式会阻止应用接收后台推送
    • 针对小米、华为、OPPO等国产设备,需要将应用加入系统的后台运行白名单,并关闭对应的推送拦截功能
    • 确认应用未被用户强制停止,强制停止状态下应用无法接收任何FCM推送
  • 区分通知消息与数据消息的处理逻辑
    你的负载同时包含notification和data字段:

    • 当应用处于前台时,需要确保Ionic的推送插件(如@capacitor/push-notifications)正确监听pushNotificationReceived事件,处理混合类型的消息
    • 当应用处于后台时,系统托盘会显示notification内容,但data字段需要在用户点击通知后才能获取,需确认插件是否正确传递这部分数据

内容的提问来源于stack exchange,提问作者Kasparas Morkūnas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:42:49