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

如何通过FMC+kreait/firebase-php设置Android通知角标计数?

Android推送通知角标直接设置(而非累加)方案

针对你的问题,首先需要明确:Android没有系统级统一的角标管理标准,不同厂商(华为、小米、三星等)有各自的实现逻辑。Firebase传递的notification_count字段只是把数值传给客户端,是否累加还是直接设置,最终由客户端代码决定。

1. kreait/firebase-php的正确配置方式

你可以用面向对象的写法替代数组配置,代码更清晰(效果与数组写法一致):

use Kreait\Firebase\Messaging\AndroidConfig;
use Kreait\Firebase\Messaging\AndroidNotification;

// 创建Android通知配置,传入目标角标数值
$androidNotification = AndroidNotification::new()
    ->withNotificationCount($badge_count);

// 绑定到Android全局配置
$androidConfig = AndroidConfig::new()
    ->withNotification($androidNotification);

// 将配置应用到推送消息
$message = $message->withAndroidConfig($androidConfig);

2. 解决“累加”问题的核心:客户端逻辑修改

你遇到的累加情况,是因为客户端默认把收到的notification_count和现有角标数做了相加操作。要实现直接设置,需要在客户端针对不同厂商做对应处理:

  • 华为设备:调用华为角标SDK的setBadgeNumber方法,直接传入收到的notification_count值
  • 小米设备:调用小米推送SDK的setBadgeNumber接口,将数值设置为收到的目标数
  • 其他厂商:参考对应厂商官方文档,实现直接覆盖角标数的逻辑

只要客户端将收到的notification_count作为最终角标数,而非累加,就能实现你想要的“直接设置”效果。

内容的提问来源于stack exchange,提问作者Patrick Kenny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:49:56