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

使用Go官方FCM包给Android发推送时出现invalid-apns-credentials错误

问题:向Android发送FCM推送却收到APNS凭据错误

使用Go官方FCM包firebase.google.com/go/messaging向Android用户发送推送通知时,明明仅配置了Android相关参数,却收到了与APNS(iOS推送服务)相关的凭据错误。

代码片段

app, err := firebase.NewApp(ctx, nil,
    option.WithCredentialsJSON([]byte(credsJSON)),
)
client, err := app.Messaging(ctx) // err 为 nil
_, err = client.Send(&messaging.Message{
    Token: "correct user device token",
    Android: &messaging.AndroidConfig{
        Data: map[string]string{"some":"data"}
    }
}) // 触发下方描述的错误

错误信息

http error status: 401; reason: apns certificate or auth key was invalid; code: invalid-apns-credentials; details: Request is missing required authentication credential

解决方案

  • 验证设备令牌归属:确认传入的Token确实是Android设备的FCM令牌,而非iOS设备的APNS令牌。FCM会根据令牌自动选择推送渠道,若令牌属于iOS,就会尝试调用APNS接口,进而触发凭据错误。
  • 检查项目APNS配置:即使仅推送Android,若Firebase项目中配置了无效的APNS证书/密钥,FCM可能会默认加载这些配置。进入FCM控制台,移除或修正无效的APNS配置项。
  • 显式禁用APNS渠道:在messaging.Message中显式设置APNS: nil,强制FCM仅使用Android推送通道,避免触发APNS相关逻辑。修改后的代码示例:
_, err = client.Send(&messaging.Message{
    Token: "correct user device token",
    Android: &messaging.AndroidConfig{
        Data: map[string]string{"some":"data"}
    },
    APNS: nil // 显式指定不使用APNS渠道
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:18:22