Swift 如何在不使用Firebase控制台的情况下发送推送通知

Swift 如何在不使用Firebase控制台的情况下发送推送通知,swift,firebase,push-notification,firebase-cloud-messaging,Swift,Firebase,Push Notification,Firebase Cloud Messaging,我有一个通过Firebase提供消息功能的应用程序。它在应用程序中工作,我有一个firebase observer设置,可以实时抓取新消息。我不知道如何在该观察器下触发推送通知 我已经在我的应用程序中实现了Firebase云消息,这样我就可以向我的控制台发送通知,但是我很难找到用于iOS的资源,或者不只是使用控制台发送单个消息 我知道这是一个宽泛的问题,可能会被贴上“离题”的标签,但如果我能获得更多相关资源,我将不胜感激 有一个用于发送Firebase云消息的API。与其在这里重复,我建议您查看

我有一个通过Firebase提供消息功能的应用程序。它在应用程序中工作,我有一个firebase observer设置,可以实时抓取新消息。我不知道如何在该观察器下触发推送通知

我已经在我的应用程序中实现了Firebase云消息,这样我就可以向我的控制台发送通知,但是我很难找到用于iOS的资源,或者不只是使用控制台发送单个消息


我知道这是一个宽泛的问题,可能会被贴上“离题”的标签,但如果我能获得更多相关资源,我将不胜感激

有一个用于发送Firebase云消息的API。与其在这里重复,我建议您查看。它基本上采用HTTP POST请求的形式,例如:

要向设备发送消息,您需要指定所谓的FCM服务器密钥。正如其名称所适用的那样,此密钥只应在受信任的环境中使用,例如您控制的服务器、您的开发机器或Firebase的云功能。这是因为拥有FCM服务器密钥的用户可以向应用程序的所有用户发送不受限制的消息

还有一个Firebase Admin SDK,可以更轻松地调用FCM服务器API在其支持的平台上发送消息。有关此选项的详细信息,请参阅。这将上述内容转化为类似的内容(在Node.js上):


你可以和邮递员或类似的人一起寄。 您必须向
POST请求https://fcm.googleapis.com/fcm/send

设置标题:

内容类型:应用程序/json

Authorization:key=

它必须看起来像

授权:key=AAAAwrVC26k:APA91bHz_ZRBjyoyevnVi0oey8yO_om9av_u2;-YeUq

和通知正文:

{
 "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
 "collapse_key" : "type_a",
 "notification" : {
     "body" : "Body of Your Notification",
     "title": "Title of Your Notification"
 },
 "data" : {
     "body" : "Body of Your Notification in Data",
     "title": "Title of Your Notification in Title",
     "key_1" : "Value for key_1",
     "key_2" : "Value for key_2"
 }
}
admin.messaging().send({
  "message":{
    "token" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
      "body" : "This is an FCM notification message!",
      "title" : "FCM Message",
      }
   }
})
{
 "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
 "collapse_key" : "type_a",
 "notification" : {
     "body" : "Body of Your Notification",
     "title": "Title of Your Notification"
 },
 "data" : {
     "body" : "Body of Your Notification in Data",
     "title": "Title of Your Notification in Title",
     "key_1" : "Value for key_1",
     "key_2" : "Value for key_2"
 }
}