如何對 Amazon SNS 中的 Firebase Cloud Messaging (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. 檢閱交付狀態日誌是否包含失敗的推送訊息交付 ("status": "FAILURE")。
  2. 檢查失敗的推送通知交付日誌中是否包含任何其他平台回應碼
  3. 遵循 Firebase 網站的下游訊息錯誤回應代碼一節中針對該回應碼所列出的建議動作

如需有關 FCM 錯誤碼和疑難排解最佳實務的詳細資訊,請參閱 FCM 文件中的 ErrorCode

針對顯示成功交付但裝置並未顯示訊息進行疑難排解

裝置未收到通知,或通知並未顯示在系統的通知匣中。若要判斷原因,請在應用程式的訊息處理常式中包含日誌陳述式。

如果訊息是以通知負載的形式接收,而不是資料負載,請檢閱用戶端應用程式程式碼中的訊息處理常式。只有用戶端的應用程序代碼程式碼資料通知。確保通知已推送至系統的通知匣。

如需詳細資訊,請參閱 Firebase 網站上的處理訊息

針對 Android 裝置進行疑難排解

對於 Android 裝置,請使用 FCM Android 診斷頁面檢查交付狀態並進一步針對問題進行疑難排解。若要開啟 FCM 診斷頁面,請從 Google 撥號程式撥打 *#*#426#*#*。如需詳細資訊,請參閱 Firebase 網站上的 FCM Android 診斷

相關資訊

如何在 Amazon SNS 中建立一個用於推送通知的 Android 平台應用程式?

使用 CloudWatch 監控 Amazon SNS 主題

行動推送通知

如何建立 APN 平台應用程式,以使用 AWS CLI 在 Amazon SNS 中發送推播通知?

AWS 官方
AWS 官方已更新 8 個月前