Firebase推送通知和FCM消息之间有什么区别?

Ate*_*ica 16 google-cloud-messaging firebase-cloud-messaging firebase-notifications

Heloo,我正在构建一个应用程序,我通过Firebase控制台使用推送通知.我想知道简单推送通知和云消息之间的区别是什么?来自云消息传递的消息是数据消息(具有密钥和值),通知只是没有密钥和值的文本吗?我是对的吗?

His*_*eer 25

Firebase API有两种类型的消息,他们称之为:

  • 通知
  • 数据

说明:

  1. 通知 - 仅当您的应用程序处于后台/已杀死时才会直接发送到Android的通知托盘的消息,或者onMessageReceived()如果您的应用位于前台,则会将消息发送到方法.

样品:

{
    "notification" : { "body" : "Hi"}
}
Run Code Online (Sandbox Code Playgroud)
  1. 数据有效负载 - 无论您的应用程序是forground还是background或kill,都无关紧要,这些消息将始终传递给onMessageReceived()方法.

样品:

{
    "data" : { "message" : "Hi", "whatever_key": "value"}
 }
Run Code Online (Sandbox Code Playgroud)

参考链接

重要信息:您无法从Firebase控制台发送数据有效内容消息,控制台仅发送通知消息.但是,使用API​​可以发送两种类型的消息.

要发送数据有效负载消息,您必须发出curl请求:

HTTP POST请求

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
Run Code Online (Sandbox Code Playgroud)

您可以从firebase控制台获取服务器密钥(AIzaSyZ-1u ... 0GBYzPu7Udno5aA):您的项目 - >设置 - >项目设置 - >云消息 - >服务器密钥