设备未收到 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 参数的描述以及datanotification 的不同行为方式:

设置消息的优先级。有效值为“正常”和 “高的。”在 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 通知的主要内容,如果未能解决你的问题,请参考以下文章

通过cURL / PHP发送时,设备上未收到Firebase通知

设备未收到 Firebase 云消息通知

设备未收到Firebase云消息传递通知

iOS 未收到来自 Firebase 云消息传递的通知

iOS 应用未收到来自 Firebase 的后台推送通知

iOS 13 及更高版本未收到来自 Firebase 的推送通知