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

Flutter集成Twilio Conversation监听通知时title、body返回null

Flutter集成Twilio Conversations时FCM通知notification字段为null解决方案

问题现象

  • Flutter项目接入Twilio Conversations聊天能力,已完成Android端通知配置、FCM令牌注册流程
  • 监听FirebaseMessaging.onMessage回调时,可正常读取event.data携带的全量业务数据,但event.notification.title、event.notification.body取值始终为null
  • 原有监听代码如下:
FirebaseMessaging.onMessage.listen(_onMessage);

void _onMessage(RemoteMessage event) {
  Log.debug('_onMessage -> ${event.notification?.title} -> ${event.notification?.body}');
  Log.debug('_onMessage -> ${event.data}');
  Log.debug('_onMessage -> ${event.messageType}');
}

根本原因

Twilio Conversations默认下发的FCM推送为纯数据(data-only)类型消息,不会自动填充FCM协议中顶层的notification对象,所有通知标题、正文、会话属性等内容全部封装在data载荷中,因此直接读取event.notification下的字段必然返回null,该表现不属于配置错误,是Twilio默认推送规则导致的。

修复方案

  • 直接从data载荷解析通知内容
    Twilio推送的data字段内置了固定命名的内容字段,直接读取即可拿到通知标题、正文,常用字段如下:
    • twi_title:通知标题
    • twi_body:通知正文
    • conversation_sid:消息所属会话的唯一标识
    • message_sid:消息本身的唯一标识
      修改后的监听代码示例:
    void _onMessage(RemoteMessage event) {
      // 从data字段读取通知内容,无需依赖event.notification对象
      final notificationTitle = event.data['twi_title'];
      final notificationBody = event.data['twi_body'];
      final conversationId = event.data['conversation_sid'];
      Log.debug('_onMessage -> $notificationTitle -> $notificationBody');
      Log.debug('_onMessage -> 全量data数据: ${event.data}');
    }
    
  • 前台场景手动触发通知展示
    纯data消息不会在App前台时自动弹出系统通知栏提醒,需要搭配本地通知插件(如flutter_local_notifications),拿到解析后的标题、正文后手动构建本地通知展示。
  • 可选配置:自定义Twilio推送模板
    如果需要让Twilio下发的消息自动填充FCM的notification对象,可以在Twilio控制台的Push凭证配置页自定义推送payload模板,将标题、正文字段映射到FCM notification结构下。但该方案在App前台、后台、被杀进程三种状态下的FCM回调逻辑存在差异,纯data消息的回调触发一致性更高,更推荐优先使用解析data字段的方案。

排查提示:只要event.data可以正常拿到Twilio返回的twi_开头的字段,就说明推送链路、令牌注册、Twilio侧配置全部正常,不需要反复检查通知权限、google-services配置等项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:24:20