Android 设备未收到使用 Firebase Cloud Messaging 发送的 5% 的推送

pir*_*pir 5 android push-notification firebase firebase-cloud-messaging android-push-notification

下面来自 Firebase Cloud Messaging (FCM) 控制台的图表显示了手机仅接收了约 95% 的推送。这给我们带来了很多问题,因为我们正在创建 VoIP 应用程序并且需要立即接收推送。谁能解释为什么会发生这种情况以及如何使这个比率接近 100%?

一些重要的注意事项:

  • 所有手机都是安卓
  • 所有手机在收到推送时或最多 2 分钟前都打开了我们的应用程序
  • 所有推送都是优先级高的数据推送(即没有正文/标题)
  • 推送会在 10 秒后过期,以便按照 Android 文档对它们进行优先级排序
  • 我们在同一时期有大约 30 个错误(注册令牌未注册和内部错误)发送推送,与大约 500 个未交付推送相比,这算不了什么

FCM 控制台的屏幕截图

bea*_*rdo 5

皮尔,

据我了解,导致消息无法传递的原因有很多。我想如果不看你的具体数据,任何人都很难给出结论性的答案。

我建议您花一些时间阅读Firebase 文档上的了解消息传递。尽管我建议您阅读整篇文章,但您特别感兴趣的可能是BigQuery 数据导出部分。这包括将消息数据导出到 BigQuery。哪些数据导出到 BigQuery ?中介绍了导出到 BigQuery 的数据。部分。我认为您会对保存event有关发生的事件类型的数据的字段感兴趣。这些事件类型包括:

  • MESSAGE_ACCEPTED:消息已被FCM服务器接收并且请求有效;
  • MESSAGE_DELIVERED:消息已传送到设备上应用程序的 FCM SDK。默认情况下,不会传播该字段。要启用,请按照 ) 中提供的说明进行操作setDeliveryMetricsExportToBigQuery(boolean)
  • MISSING_REGISTRATIONS:由于缺少注册,请求被拒绝;
  • UNAUTHORIZED_REGISTRATION:消息被拒绝,因为发送者无权发送到注册;
  • MESSAGE_RECEIVED_INTERNAL_ERROR:处理消息请求时出现未指定的错误;
  • MISMATCH_SENDER_ID:由于发送消息的发送者 ID 与为端点声明的发送者 ID 不匹配,发送消息的请求被拒绝;
  • QUOTA_EXCEEDED:由于配额不足,发送消息的请求被拒绝;
  • INVALID_REGISTRATION:由于注册无效,发送消息的请求被拒绝;
  • INVALID_PACKAGE_NAME:由于包名无效,发送消息的请求被拒绝;
  • INVALID_APNS_CREDENTIAL:由于APNS证书无效,发送消息的请求被拒绝;
  • INVALID_PARAMETERS:由于参数无效,发送消息的请求被拒绝;
  • PAYLOAD_TOO_LARGE:由于负载大于限制,发送消息的请求被拒绝;
  • AUTHENTICATION_ERROR:由于身份验证错误,发送消息的请求被拒绝(检查用于发送消息的 API Key);
  • INVALID_TTL:由于 TTL 无效,发送消息的请求被拒绝。

我希望这有帮助。祝你好运!