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

Flutter中通过Google APIs实现一对一推送及获取对方设备Token

如何获取聊天对象的FCM设备Token以实现一对一消息推送?

FCM设备Token与单个设备绑定,无法直接从本地获取对方的Token,必须通过后端存储+用户关联的方式实现,具体步骤如下:

  • 每个用户在首次登录或设备初始化时,调用已有代码获取当前设备的FCM Token:
    FirebaseMessaging messaging = FirebaseMessaging.instance;
    String? token = await messaging.getToken();
    
  • 将获取到的Token与用户的唯一标识(如用户ID、手机号)绑定,上传至你的后端数据库存储。注意:FCM Token可能因应用重装、系统更新、设备重置等情况变更,建议每次应用启动时检查Token是否更新,若有变化立即同步到后端。
  • 当用户X向用户Y发送消息时,前端先请求自身后端,传入用户Y的唯一标识;后端从数据库中查询出用户Y对应的FCM Token后,再调用FCM v1接口完成消息推送。

FCM v1接口调用说明

调用接口时需通过Firebase服务账号生成OAuth2令牌进行认证,请求格式示例:

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
Authorization: Bearer <OAuth2令牌>
Content-Type: application/json

{
   "message":{
      "token":"用户Y的FCM Token",
      "notification":{
        "body":"消息内容",
        "title":"消息标题"
      }
   }
}

Firebase v1版本迁移核心要点(翻译自官方文档)

  1. v1版本要求使用服务账号完成认证,不再支持旧版本的服务器密钥直接调用,需通过Google OAuth2机制获取访问令牌。
  2. 消息结构相比旧版本更规范,支持数据消息、通知消息的分离配置等更多自定义选项。
  3. FCM本身不提供用户与Token的映射存储功能,开发者需自行维护用户与对应设备Token的关联关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:12