我在FCM(或之前的GCM)中生成的令牌存在問題。從GCM遷移到FCM。在設備上生成的新令牌似乎仍然有效
我們剛剛從GCM遷移到我們的Android應用中的FCM,並且所有用戶在更新後似乎都會在應用啓動時生成新令牌。 這會導致som麻煩,因爲我們將服務器上的令牌存儲在服務器上供用戶使用所有設備,並且由於我們在遷移時獲得了新令牌,因此將該令牌存儲爲特定用戶的新設備。
的問題是,舊的GCM令牌似乎仍然是工作,現在所有的用戶都得到雙重推送通知到同一個設備..
下面是一個使用案例:
- 用戶安裝的應用程序1個手機和1片(應用的GCM版本) 服務器現在包含這些令牌用戶:
片劑:evWLQAq2yXw:APA91bH4GlHPSi [...]
電話:fnLVyZy_ICE:APA91bHopxcL1ckHl [...]
- 用戶升級到新的版本在電話(FCM版本應用程序,其生成新的令牌的) 服務器現在包含這些標記爲用戶:
- 服務器推送通知和用戶現在得到1平板電腦通知和手機通話2。
片劑:evWLQAq2yXw:APA91bH4GlHPSi [...]
電話:fnLVyZy_ICE:APA91bHopxcL1ckHl [...]
電話:fnLVyZy_ICE:CTVj02MDxjZq7rIYSi [...]
應該如何來處理呢?我不能是唯一一個與此問題
從我們的服務器FCM(https://fcm.googleapis.com/fcm/send)發佈通知,當我從谷歌得到的迴應是這樣的:
{
"multicast_id": 8013823232923765460,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1482923896059583%2bb227d2f9fd7ecd"
}
]
}
上述這種反應同時適用於舊的GCM令牌和新的FCM令牌。響應中沒有設置錯誤和canonical_ids,因此我們的服務器可能會進行相應的更新。
我想知道爲什麼你爲一個設備保留幾個令牌。誠然,即使令牌更新,舊的令牌也會有效。但在我看來,你可以更新設備令牌而不是跟蹤令牌,對嗎? – Merka
我們爲用戶保存多個令牌的原因是他或她可能在多個設備上擁有應用@AkramShokri。當服務器發送推送並從GCM/FCM獲取無效令牌時,它將從數據庫中刪除它。我確信GCM生成的GCM會在用戶在FCM中生成新的推送後發送的第一次推送時無效,但事實並非如此。 – korrekorre
你有沒有解決這個問題?我們遇到同樣的問題。我們將GCM更新爲FCM,但我們也更改了google項目,現在看起來舊項目中的舊GCM令牌仍然有效。 – Xzya