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

What is the difference between Firebase push-notifications and FCM messages?

你好,我正在构建一个应用程序,我在其中通过 Firebase 控制台使用推送通知。我想知道简单的推送通知和云消息有什么区别? 是不是云消息是数据消息(有key和value),而notifications只是没有key和value的文本?我说的对吗?

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

  • 通知
  • 数据

解释:

  1. notification - 仅当您的应用程序位于 background/killed[=52 时,消息才会直接进入 Android 的通知托盘=] 或者如果您的应用程序在 foreground.
  2. 中,则被传送到 onMessageReceived() 方法

样本:

{
    "notification" : { "body" : "Hi"}
}
  1. 数据有效负载 - 无论您的应用程序是在前台还是后台还是被终止,这些消息将始终传递到 onMessageReceived() 方法。

样本:

{
    "data" : { "message" : "Hi", "whatever_key": "value"}
 }

Reference link

重要提示: 您无法从 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..."
}

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