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

单设备多用户场景下如何基于FCM Token给指定用户推送通知?

解决FCM向单个用户(而非设备)推送通知的方案
  • 后端维护用户-设备-Token的活跃关联
    后端需新增关联数据表,核心字段包括:用户ID、FCM Token、设备UUID(区分同一用户的不同设备)、活跃状态(布尔值)。

    • 用户登录时:客户端上传用户ID、当前设备UUID、FCM Token,后端将该关联标记为活跃;若该Token已关联其他用户,同步将其他用户的对应关联标记为非活跃(同一设备同一时间仅保留一个活跃用户关联)。
    • 用户登出时:客户端通知后端,将该用户在当前设备上的Token关联标记为非活跃。
  • 客户端同步Token状态

    • 登录/登出操作完成后,立即向后端同步当前Token的关联状态。
    • 监听FCM Token刷新事件,一旦Token更新,马上将新Token、当前登录用户ID、设备UUID同步到后端,更新对应关联记录。
  • 调整推送逻辑
    当需要给指定用户推送通知时,后端先查询该用户所有活跃状态的Token关联记录,再针对这些Token逐个发送FCM请求。

  • 客户端通知校验(兜底机制)
    在FCM请求的data字段中加入target_user_id(目标用户的唯一标识)。客户端收到通知后,先对比当前登录用户ID与target_user_id:

    • 匹配则展示通知;
    • 不匹配则直接丢弃,不展示。

修改后的FCM请求示例

{
    "to": "目标活跃FCM Token",
    "notification": {
        "title": "新消息提醒",
        "body": "你有一条未读消息",
        "mutable_content": true,
        "sound": "Tri-tone"
    },
    "data": {
        "url": "Hello",
        "dl": "<deeplink action on tap of notification>",
        "target_user_id": "user_123456"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:22:46