我正在實施Firebase雲消息傳遞(FCM),並遇到我無法解決的問題。我根據指南實施了FirebaseMessagingService
和FirebaseInstanceIdService
。當我爲我的應用程序訪問Firebase控制檯並使用通知功能時,我可以成功地向所有應用程序實例發送消息(使用軟件包名稱)。現在FCM:註冊令牌無效。檢查令牌格式
,在代碼中,我使用下面的代碼中獲取的火力地堡實例ID(標記):
String token = FirebaseInstanceId.getInstance().getToken();
SendFirebaseTokenToServer(token);
(請注意,我目前使用HTTP協議,因爲我的服務器尚不有證書)。無論如何,使用我從上述調用中獲得的令牌,我會返回到Firebase控制檯並嘗試向安裝的一(1)個應用程序實例發送消息。我從我們的服務器數據庫中獲取它存儲爲「varchar(max)」的令牌。當我這樣做,我收到以下錯誤信息:
Invalid registration token. Check the token format.
我用Google搜索這一點,發現只有一重擊(具有火力地堡和iOS做):
http://stackoverflow.com/questions/41343520/ios-invalid-registration-token-check-the-token-format
這個問題表明證書是必需的(我想我正確閱讀它)。我不確定我做錯了什麼。我需要先使用Firebase控制檯才能使用該功能,然後我的服務器人員可以開始瞭解他們的工作。
謝謝!
好吧,我決定直接嘗試Firebase控制檯(無服務器交互),使用我從Firebase調用中獲得的registration_id(令牌)(吐出Logcat)。有效!所以問題存在於服務器上或發送給服務器。我應該編碼()令牌嗎? –
如果問題存在於您的應用服務器中的代碼中,請編輯您的問題以包含[重現問題的最小服務器代碼](http://stackoverflow.com/help/mcve)。沒有看到這些代碼,很難說它有什麼問題。 –