如何对 Amazon SNS 中的 FCM 移动推送通知失败进行故障排除?

1 分钟阅读
0

我的 Firebase Cloud Messaging(FCM)移动推送通知无法通过 Amazon Simple Notification Service(Amazon SNS)发送。

解决方法

配置和查看 Amazon CloudWatch Logs 的推送通知传送状态属性

按照如何访问推送通知的 Amazon SNS 主题传送日志?中的说明进行操作

确认设备可以连接到推送通知服务器

如果问题仅发生在特定设备上,请确保该设备可以连接到推送通知服务器。例如,您的防火墙可能会限制允许移动设备与您网络上的 FCM 连接的流量。有关更多信息,请参阅 Firebase 网站上的 FCM 端口和您的防火墙

检查是否已激活设备的关联平台端点

查看失败的推送通知传送日志,查看**“providerResponse”: “端点已禁用”**值。

示例:

{  "notification": {
    "messageMD5Sum": "c8c339cf07dc39c9388253dgc81f257",
    "messageId": "fg207f98-0244-6767-96e2-45b1fg451gg8",
    "timestamp": "2023-06-23 16:27:51.889"
  },
  "delivery": {
    "deliveryId": "76ab7dcd-f444-5b4f-9d1b-24ea8863d9bc",
    "destination": "arn:aws:sns:us-east-1:123456789101:endpoint/GCM/MyAndroidApp/682dc992-a47f-45f7-b980-97727cce0a9c",
    "providerResponse": "Endpoint is disabled",
    "dwellTimeMs": 28,
    "attempts": 1,
    "token": "ojnco9nc9weucn9encx9ewunc9nu9w9euncec9necn9xexnexex9encewcerve0f0o0dmco9j",
    "statusCode": 400
  },
  "status": "FAILURE"
}

如果在传送失败日志中看到**“providerResponse”: “端点已禁用”**值,则设备关联的平台端点已停用。要解决此问题,请参阅为什么我的推送通知端点未激活?

有关更多信息,请参阅重新启动与无效设备令牌关联的平台端点

确认您可以直接从 FCM 接收通知

要确定问题出在 Amazon SNS 端点端还是客户端应用程序端,请在 FCM 控制台上发送测试消息。有关说明,请参阅 Firebase 网站上的发送测试通知消息

确认您使用的是正确的 FCM 消息类型

FCM 支持通知消息和数据消息。FCM SDK 会自动处理通知消息。客户端应用程序处理数据消息。有关更多信息,请参阅 Firebase 网站上的消息类型。另请参阅发送特定于平台的消息

设置数据密钥以处理客户端应用程序上的消息数据

确保使用自定义键值对设置数据密钥,向客户端应用程序发送数据负载。有关更多信息,请参阅 Firebase 网站上的数据消息

使用 FCM SDK 显示您的客户端应用程序的通知

确保同时使用通知密钥与通知消息的预定义键值选项集。有关更多信息,请参阅 Firebase 网站上的通知消息

识别推送通知错误响应代码并对其进行故障排除

完成下列步骤:

  1. 查看您的传送状态日志,了解推送通知发送失败(“状态”: “FAILURE”)。
  2. 查看失败的推送通知传送日志,了解任何其他平台响应代码
  3. 按照 Firebase 网站上的下游消息错误响应代码部分中为代码列出的建议操作进行操作。

有关 FCM 错误代码和故障排除最佳实践的更多信息,请参阅 Firebase 网站上的 ErrorCode

对显示成功传送但消息未显示在设备上的问题进行故障排除

可能是设备未收到通知,或者通知未显示在系统的通知托盘中。要确定原因,请在应用程序的消息处理程序中加入日志语句。

如果消息是作为通知负载接收的,而不是数据负载,请查看客户端应用程序代码中的消息处理程序。只有客户端的应用程序代码才能处理数据通知。确保将通知推送到系统的通知托盘。

有关更多信息,请参阅 Firebase 网站上的处理消息

Android 设备故障排除

对于 Android 设备,请使用 FCM Android 诊断页面查看传输状态并进一步解决问题。要打开 FCM 诊断页面,请从 Google 拨号器拨打 *#*#426#*#*。有关更多信息,请参阅 Firebase 网站上的 FCM Android 诊断

相关信息

如何在 Amazon SNS 中为推送通知创建 Android 平台应用程序?

使用 CloudWatch 监控 Amazon SNS 主题

移动推送通知

如何使用 AWS CLI 在 Amazon SNS 中创建用于发送推送通知的 APNs 平台应用程序?

AWS 官方
AWS 官方已更新 7 个月前