代码之家  ›  专栏  ›  技术社区  ›  Sobinscott

FCM数据消息不发送最新数据有效负载

  •  1
  • Sobinscott  · 技术社区  · 8 年前

    我正在通过FCM向我的android应用程序发送数据消息。但是,当我更改数据有效负载结构时,它似乎不会影响。 FCM有效负载为

    {
    "to" : "eF3lccIdYs4:APA91bHpC1xWNl4MZXXXX",
    "data" : {
     "caller_name" : "Sobin Thomas",
      "room"    : "2000",
      "call_type" : "audio"
    
      }, 
    "time_to_live" : 0
    }
    

    如果我将其更改为

    {
    "to" : "eF3lccIdYs4:APA91bHpC1xWNl4MZXXXX",
    "data" : {
     "**caller**" : "Sobin Thomas",
      "**room_number**" : "2000",
      "call_type" : "audio",
     **"call_time" : "2018-04-24 12:12:12",**
    
      }, 
    "time_to_live" : 0
    }
    

    旧数据负载仍在移动应用程序中。当然,数据有效载荷值会发生变化

    1 回复  |  直到 8 年前
        1
  •  1
  •   Frank van Puffelen    8 年前

    Firebase云消息将尝试传递每一条消息,而不仅仅是最后一条。可能发生的情况是,您的设备在短时间内连续接收多条消息,并且只显示一条。

    如果希望新消息替换旧消息,则需要指定所谓的 collapse_key .从 documentation :

    此参数标识一组消息(例如 collapse_key: "Updates Available" )可以将其折叠,以便在恢复传递时只发送最后一条消息。这是为了避免在设备重新联机或处于活动状态时发送太多相同的消息。