安卓通知:通知和数据有效负载有什么区别



它看起来与我使用的有效负载相同 通知或数据

{"notification":{"body":"Notification Hub test notification"}}

我认为通知有效负载仍然可以接收通知,即使它已关闭而不是后台或前台。我试过了,但在应用程序处于非活动状态时似乎没有收到有效负载。

似乎数据和通知我都收到了相同的结果

Firebase 云消息支持两种类型的消息:通知消息和数据消息。它们之间的区别在于,使用数据消息,您可以在消息中发送自己的数据元素,而与通知消息一样,您必须使用预定义的元素。

顾名思义,通知消息类型用于发送通知,这些通知将在通知栏中显示为通知。FCM 会自动处理通知消息,您的应用也可以处理和自定义通知消息。数据消息类型用于将数据发送到客户端。你的应用必须处理它并采取进一步操作。可以发送到客户端的消息大小限制为 4kb。

JSON 格式的通知消息

{"message":{"topic":"deals","notification":{"body":"View latest deals from top brands.","title":"Latest Deals"}}}

JSON 格式的数据消息

{"message":{"topic":"deals","data":{"storeNAME":"Nordstorm","deal":"Get upto 50% off on Shoes","dealDesc":"Get upto 50% off on branded shoes.","expiry":"20180110","code":"NORDSH"}}}

JSON 格式的通知和数据消息

{"message":{"topic":"deals","data":{"storeNAME":"Nordstorm","deal":"Get upto 50% off on Shoes","dealDesc":"Get upto 50% off on branded shoes.","expiry":"20180110","code":"NORDSH"},"notification":{"body":"View latest deals from top brands.","title":"Latest Deals"}}}

请注意,在数据消息中,数据元素下只允许名称和值对,这意味着数据元素不能有分层数据或 JSON 数组。

当应用在后台运行时,通知有效负载由操作系统自动处理。数据有效负载始终传递到应用程序代码。