You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS使用Firebase HTTP v1推送消息报403错误,Android正常

排查iOS Firebase HTTP v1推送403错误的核心要点
  • 匹配APNs推送类型与应用权限
    如果你用"apns-push-type": "background"发静默通知,必须满足两个硬要求:

    1. iOS应用已开启「Remote notifications」后台模式(Xcode的Signing & Capabilities里,Background Modes下勾选对应选项)
    2. 推送payload里不能包含notification字段,只能保留data字段——Firebase v1 API里,要是把notification和background推送类型混用,APNs直接会返回403拒绝请求
  • 核对Firebase项目的APNs配置
    别以为之前正常就没问题,重新检查这两项:

    1. Firebase控制台中,对应iOS应用的「Cloud Messaging」标签下,APNs认证密钥是否有效(有没有过期、是否和当前App ID完全匹配)
    2. 推送请求的apns-topic字段必须是正确的App ID(比如com.yourcompany.yourapp),这个字段要和APNs密钥的Team ID、App ID完全对应
  • 验证请求凭证的权限
    虽然Android推送正常,但iOS对凭证校验更严格:

    1. 确认你的OAuth 2.0令牌拥有https://www.googleapis.com/auth/firebase.messaging权限
    2. 检查令牌是否过期——Firebase v1 API的令牌有效期是1小时,需要定时刷新
  • 修正静默通知的payload格式
    静默通知必须严格符合APNs规范,参考正确格式:

    {
      "message": {
        "token": "你的设备令牌",
        "data": {
          "自定义键1": "自定义值1",
          "自定义键2": "自定义值2"
        },
        "apns": {
          "headers": {
            "apns-push-type": "background",
            "apns-priority": "5"
          },
          "payload": {
            "aps": {
              "content-available": 1
            }
          }
        }
      }
    }
    

    重点:apns-priority必须设为5,设为10会被APNs判定为不符合静默通知要求,直接返回403

内容的提问来源于stack exchange,提问作者fbs419

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:12:35