i am Roger Li

使用FCM API遇到MismatchSenderId error code

當設定使用Firebase Cloud Messaging 的REST API 發出message時,獲得 「MismatchSenderId」 error,本來認為是Android app方面在Register token 時沒有同時提供Server的Sender ID以允許指定Server向裝置發出Push Notification。
跟據官方的Firebase Cloud Messaging HTTP Protocol document有提供MismatchSenderId的建議Troubleshoot方法:

A registration token is tied to a certain group of senders. When a client app registers for FCM, it must specify which senders are allowed to send messages. You should use one of those sender IDs when sending messages to the client app. If you switch to a different sender, the existing registration tokens won’t work. 

但原來Firebase在Cloud Messaging的設定頁內已發出以下訊息
:

Firebase Cloud Messaging 憑證已經取代傳送訊息所需的伺服器金鑰。雖然您可以繼續使用伺服器金鑰,但我們已停止提供相關的支援服務。

以下是收到的 json:

{「multicast_id」:612351507xxxxxxxxxx,」success」:0,」failure」:1,」canonical_ids」:0,」results」:[{「error」:」MismatchSenderId」}]}

我嘗試把呼叫API 的Authentication key的伺服器金鑰換成新的Firebase Cloud Messaging 憑證錯誤消失了!

發表回覆

你的電郵地址並不會被公開。 必要欄位標記為 *