【发布时间】:2016-05-19 19:28:22
【问题描述】:
我正在使用新的 Firebase 平台。我正在尝试获取我的应用服务器发送的推送通知并发送到我的 iPhone。
我的设置工作正常,我通过网站上的 Firebase 通知区域手动发送消息,但是当我尝试通过 POST 将消息发送到 https://fcm.googleapis.com/fcm/send 时,我没有收到任何消息传递到设备。
我正在发送以下内容(带有身份验证标头)
{ "notification": {
"title": "Portugal vs. Denmark",
"text": "5 to 1"
},
"to" : "<registration token>"
}
我收到来自 POST 的 200 响应,正文如下:
{
"multicast_id": 5511974093763495964,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1463685441784359%3ad254b53ad254b5"
}
]
}
如果我尝试通过 Firebase 网站直接发送到此设备,它可以工作,但上面的表单帖子没有。不知道从这里去哪里!
【问题讨论】:
-
当您手动发送然后使用 Firebase 网站发送时,它们是否都使用相同的 Apple 推送环境?有一个 dev 和一个 prod 环境,检查您通过 Firebase 使用的环境是否与您手动使用的环境相同。
-
我在文档中没有看到任何地方提到这一点?从站点发送并没有给我一个开发或产品选项,其余的 API 也没有?到目前为止,我只上传了一个 dev apns 证书...
-
我不熟悉 Firebase,但 Apple push 的基本原理是不变的。 prod 环境与 dev 证书不兼容,反之亦然。Apple 开发环境称为沙箱。它的网址是 ssl://gateway.sandbox.push.apple.com:2195。如果您在使用 Firebase 时验证您使用的是 Apple 沙盒环境。
-
另外,您如何从设备获取 Apple 推送令牌?它可以而且确实会发生变化,因此每次启动应用程序时都必须检索它。使用过时的推送令牌会导致推送失败。
-
如果我尝试通过网站向特定令牌发送通知,它就会被传递。如果我尝试通过 API 直接发送它,它就永远不会收到。没有办法指定它是通过 dev 还是 prod apple 服务发送?
标签: ios firebase firebase-cloud-messaging