设备未收到 Firebase iOS 通知
Posted
技术标签:
【中文标题】设备未收到 Firebase iOS 通知【英文标题】:Firebase iOS notifications not received on device 【发布时间】:2020-11-30 15:22:59 【问题描述】:我们有两种 firebase 通知,一种带有 notification
字段,另一种没有(系统使用此字段显示横幅)。
with 总是被接收,without 在某一行尝试后被接收,然后停止接收。
这些是有效载荷:
总是收到的:
"content_available": true,
"data":
"pushCategory": "ALEXA",
"body": "body",
"message": "message",
"title": "status/update",
"updateStatus":
"operationId": "7fc0e1ff-cc0d-4045-8b30-69710bf80c24",
"status": 0,
"action": "makecoffee",
"description": "",
"stock":
"remaining": "91",
"threshold": "10",
"depletion": false
,
"notification":
"title": "title",
"body": "body msg"
,
"apns":
"headers":
"apns-priority": "10"
,
"to": "----"
不是随机收到的:
"content_available": true,
"data":
"pushCategory": "ALEXA",
"body": "body",
"message": "message",
"title": "status/update",
"updateStatus":
"operationId": "7fc0e1ff-cc0d-4045-8b30-69710bf80c24",
"status": 0,
"action": "makecoffee",
"description": "",
"stock":
"remaining": "91",
"threshold": "10",
"depletion": false
,
"apns":
"headers":
"apns-priority": "10"
,
"to": "----"
始终会收到直接使用 APNS 服务器且不带 alert
字段的等效通知。 (alert
字段是告诉系统显示横幅的字段)
我联系了 Firebase 支持,但问题一直存在,您知道可能是什么问题吗?
【问题讨论】:
第一个是用户看到的通知吗?第二个是无声通知?我的意思是为什么content_available
对他们俩都是真的?
如果第二个是静默通知,那么 tl;dr 静默通知的传递机会远小于非静默通知
【参考方案1】:
我从未使用过 Firebase。
我不确定您的有效载荷中的apns-priority
是否有效果。我只是不知道:
"apns":
"headers":
"apns-priority": "10"
,
我认为你必须摆脱它,只使用 priority
字段本身。让 Firebase 自己映射字段...
从Firebase docs,查找priority
参数的描述以及data
与notification
的不同行为方式:
设置消息的优先级。有效值为“正常”和 “高的。”在 ios 上,这些对应于 APN 优先级 5 和 10。
默认情况下,通知消息以高优先级发送,并且 数据消息以正常优先级发送。正常优先级优化 客户端应用程序的电池消耗,除非 需要立即交货。 对于具有正常优先级的邮件, 应用可能会收到未指定延迟的消息。
当以高优先级发送消息时,它会立即发送,并且 该应用可以显示通知。
data
的有效载荷最终以 firebase 优先级“正常”结束,转换为 apns-priority
5
对于notification
,“高”的firebase 优先级转换为apns-priority
of 10
有关 apns 优先级的更多信息,请参阅apns-docs
通知的优先级。如果省略此标头,APNs 设置 通知优先级为 10。
指定 10 立即发送通知。
指定 5 根据电源考虑发送通知 用户的设备。
【讨论】:
您好,感谢您的回答,即使我使用:"priority": "high"
更改有效负载并删除了 apns 字段,结果仍然相同。以上是关于设备未收到 Firebase iOS 通知的主要内容,如果未能解决你的问题,请参考以下文章