0

我還在使用Firebase和Android通知。我希望能夠根據一些規則將通知發送給單個用戶。我到目前爲止一直在閱讀的是,一個令牌可以生成:服務器中的Firebase令牌管理

FirebaseInstanceId.getInstance().getToken() 

然後,令牌將需要到期時將在某個時候刷新。

如何儘可能設置這些令牌的到期日期?如果有一千個用戶的令牌在同一時間刷新,那麼我將需要爲這些令牌執行一千次寫入我的應用服務器。是否有針對此問題的已知縮放解決方案(例如,保持相同的標記但僅刷新其到期時間)?

回答

3

Firebase documentation on monitoring the token列舉的理由:當

登記令牌可以改變:

  • 該應用程序將刪除實例ID
  • 該應用程序被恢復的新設備
  • 用戶上卸載/重新安裝應用程序
  • 用戶清除應用程序數據。

除了刪除令牌(上述第一個選項),你有當令牌是刷新無法控制。但與Firebase身份驗證令牌不同,Firebase Cloud Messaging的實例ID令牌不會按照固定的時間表進行刷新。實例ID令牌刷新相對較少,只需要特別考慮在最大的用例中擴展。

1

沒有。沒有辦法刷新註冊令牌的到期

當註冊令牌是刷新時,令牌值將會改變。當註冊令牌本身將到期事件是不確定的,以及只能在作爲FirebaseInstanceId docs指定特定事件發生:

實例ID是穩定的,除了當:

  • 應用程序刪除實例ID
  • 應用程序是一個新的設備
  • 用戶卸載上還原/重新安裝該應用
  • 用戶清除應用數據

在上述情況下,會生成一個新的實例ID,並且應用程序需要重新創建先前生成的授權令牌,執行onTokenRefresh()

正如已經在令牌被刷新的事件上面提到的,onTokenRefresh()將被調用,你應該處理它發送給你的應用服務器和刪除得到了過期舊令牌和一些後續步驟其他的東西。