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

使用Slim Framework+Firebase推送通知时添加数据重复接收问题求助

Firebase推送通知重复接收问题解决(Slim Framework PHP API场景)

当你在推送payload中同时包含notification和data字段时,很容易出现单次发送收到两条通知的情况——原因是:

  1. Firebase SDK会自动识别notification字段,直接在系统通知栏弹出一条通知;
  2. 你的客户端代码如果还监听了data消息,并手动触发通知展示,就会产生第二条重复通知。

两种解决办法:

  • 只通过data字段传递内容,由客户端全权处理通知
    移除payload里的notification节点,把所有通知内容和自定义数据都放在data中,然后在客户端(Android/iOS)的消息回调里,读取data中的字段手动创建通知。示例PHP代码:

    $payload = [
        'to' => $deviceToken,
        'data' => [
            'title' => '订单更新提醒',
            'body' => '你的订单已发货',
            'order_id' => '123456'
        ]
    ];
    
  • 保留notification字段,客户端避免重复处理
    如果依赖Firebase自动展示notification,请修改客户端逻辑:仅当推送是**纯data类型(无notification字段)**时,才手动弹出通知;对于同时包含notification和data的推送,只处理data里的业务逻辑,不重复创建通知。

额外检查点:

  • 排查你的Slim API代码,是否存在重复调用Firebase发送接口的情况(比如路由重复匹配、循环逻辑错误);
  • 确认客户端的消息监听代码,是否对notification和data消息都执行了通知展示操作。

内容的提问来源于stack exchange,提问作者stephane nguema

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:14:50