我正在通过Postman向我已经安装了应用程序的手机发送FCM推送通知.我启用了推送通知,应用程序在后台,我有一个有效(已确认)的Firebase推送令牌. 我正在使用标题发布到https://fcm.googleapis.
我正在使用标题发布到https://fcm.googleapis.com/fcm/send(授权:key = APP_SERVER_KEY,Content-Type:application / json),我的身体看起来像:
{ "notification": { "title": "Portugal vs. Denmark", "text": "5 to 1" }, "to": MY_PUSH_TOKEN }
我正在通过身体获得以下200 OK响应:
{ "multicast_id": MULTICAST_ID, "success": 1, "failure": 0, "canonical_ids": 0, "results": [{ "message_id": "0:MESSAGE_ID" }] }
一切都很好,但我没有在手机上收到通知?我怎么能解决这个问题,有谁知道我错过了什么?
找到了解决方案!但在我提供解决方案之前,对于可能发现自己处于类似问题的其他人来说,这里有更多背景知识.我能够发布并向Android设备发送通知,我能够通过Firebase控制台向Android和iOS设备发送推送,因此唯一不起作用的是将推送发送到专门的iOS设备通过POST HTTP请求(非常困惑).
我在这里找到了这个讨论:https://github.com/firebase/quickstart-ios/issues/21.基本上对于iOS,我在请求体中缺少两个其他参数.我需要将content_available设置为true,将priority设置为high.
所以它看起来像这样:
{ "notification": { "title": "Portugal vs. Denmark", "body": "5 to 1" }, "content_available": true, "priority": "high", "to": MY_PUSH_TOKEN }
我相信github讨论会说明这些添加的请求主体参数如何允许FCM通过APNS推送到iOS.