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

使用C# .NET8调用FCM发送消息时遭遇event_time格式错误问题

解决FCM发送消息时event_time格式无效的问题

问题分析

你遇到的错误是FCM服务提示event_time格式无效,但你并未主动设置该字段,手动设置后仍报错,大概率是以下原因:

  • FCM SDK在实例化AndroidNotification时,默认初始化了一个无效的EventTimestamp值(如DateTime.MinValue),该值无法被序列化为符合Protobuf要求的Timestamp格式
  • 最新版本的FCM SDK可能存在序列化bug,导致未显式设置的字段被错误序列化发送

解决方案

1. 显式将EventTimestamp设为null

在初始化AndroidNotification时,主动将EventTimestamp设置为null,阻止SDK自动填充无效值:

var message = new Message()
{
   Notification = new Notification
   {
      Title = title,
      Body = bodyparts[0]
   },
   Android = new AndroidConfig()
   {
      Priority = Priority.High,
      Notification = new AndroidNotification()
      {
         Sound = "default",
         EventTimestamp = null, // 显式设置为null,避免默认无效值被序列化
      },
   },
   Apns = new ApnsConfig()
   {
      Aps = new Aps()
      {
         ContentAvailable = true,
         Sound = "default",
      },
   },
   Token = to
};

2. 回退到稳定版本的FCM SDK

如果是最近更新SDK后出现的问题,建议回退到之前验证过的稳定版本(例如使用FirebaseAdmin的话,可尝试回退到2.0.0版本),避免新版本的bug影响。

3. 检查是否存在间接赋值

排查代码中是否有扩展方法、配置类或其他逻辑,在你初始化AndroidNotification后间接修改了EventTimestamp字段。

验证方法

修改代码后,可开启FCM的调试日志,查看发送的请求体中是否还包含event_time字段,确认无效值已被移除。

内容的提问来源于stack exchange,提问作者Klaus Stabil-IT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:10:08