2016-08-03 45 views
0

基本上,我想,每次用戶登錄到:火力地堡雲通訊的登錄管理

  • 索取火力令牌;
  • 在我的網絡服務器中註冊令牌;
  • 使MessagingService運行;

當用戶註銷:

  • 消息服務必須停止;
  • 令牌未從我的網絡服務器註冊;

,我現在所面臨的主要問題是:

  • 火力地堡檢測到令牌不存在,它要求即使用戶沒有登錄一個新的令牌。
  • 負責監聽消息的FirebaseMessageService在收到令牌時開始自動運行;

回答

1

,而不是試圖阻止令牌被創建/註冊,如何實現這兩個要求,作爲兩個獨立的部分數據:

  1. 用戶的FCM令牌
  2. 用戶是否簽約在

這樣,你從你的應用程序代碼中刪除複雜條件,而是必須在服務器」

一個非常簡單的條件
if (user.signed_in && user.token != null) { 
    sendMessageTo(user); 
} 
+0

但是這樣,聽消息的服務仍然會繼續運行,這是這個問題的一個重點,Frank。我想在某些情況下阻止它,例如,如果用戶在首選項屏幕中選擇禁用推送通知,或者用戶決定在未被記錄的應用程序中漫遊。 –

+0

如何選擇加入主題?你基本上會綁定複選框來訂閱/取消訂閱主題。 –

+1

注意:即使令牌是自動生成的,您也沒有義務使用它,直到用戶登錄爲止。此外,生成令牌後FirebaseMessagingService也不會啓動。它是在必要的時候由Google Play服務啓動的,比如當消息進來時。 –

0

除了@ FrankvanPuffelen的回答說明,即使令牌是自動生成的,您也沒有義務使用它,直到用戶登錄。此外,FirebaseMessagingService一旦生成令牌就不會啓動。它是在必要時由Google Play服務啓動的,比如當消息進來時。