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

Android设备离线后上线能否接收FCM通知的技术咨询

关于FCM向离线设备发送通知的解答

当然可以!FCM原生就支持给离线设备发通知,当设备处于离线状态时,Google的FCM服务器会自动帮你缓存这些通知,等设备重新上线、并且持有有效的FCM令牌时,缓存的通知就会自动推送到设备上。

下面给你梳理几个关键细节和注意事项:

1. 通知的缓存逻辑

  • 通知消息(带notification字段):FCM服务器会自动缓存这类消息,默认缓存时长是4周。如果没手动设置过期时间,只要设备在4周内上线,就能收到这条通知。
  • 数据消息(仅data字段):这类消息FCM服务器不会缓存,需要你在客户端自己实现离线接收逻辑——比如收到数据消息后本地存储,或者在设备上线后主动从你的服务器拉取未接收的消息。

2. 确保推送流程的有效性

你提到虚拟机启动时能快速收到通知,说明基础推送流程是正常的。如果离线后上线收不到,建议排查这几点:

  • 检查服务端发送请求的返回状态:FCM v1 API如果返回200状态码,说明消息已经被服务器接收并缓存;如果返回错误,得先修复请求的问题(比如权限、请求体格式)。
  • 确认FCM令牌的有效性:设备重新上线时,FCM可能会刷新令牌,你的服务端要保证存储的是最新的令牌,不然推送会失败。
  • 检查time_to_live(TTL)设置:如果手动设置了较短的TTL,可能设备还没上线,消息就已经过期失效了。默认TTL是4周,你可以在请求体里调整,比如给Android平台设置1天的TTL:
{
  "message": {
    "topic": "your_topic",
    "notification": {
      "title": "你的通知标题",
      "body": "你的通知内容"
    },
    "android": {
      "ttl": "86400s"
    }
  }
}

3. FCM v1 API的注意点

用v1 API发送主题通知时,只要请求体里正确指定了topic字段,并且请求头包含有效的OAuth 2.0令牌,服务器就会正常处理离线缓存逻辑,不需要额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:54:10