6

有沒有限制Firebase推送通知註冊的方法?不在尋找主題。假設我有一個登錄功能。我想登錄用戶以訂閱推送通知。然後令牌可以發送到服務器並存儲。通過取消註冊限制GCM/FCM通知

在用戶註銷的同時,用戶也應該註銷。

那麼目前有沒有可用的機制?我瀏覽了Firebase API文檔,但找不到任何內容。

只是想知道我是否錯過了任何東西。

+1

爲什麼不在註銷時調用[unsubscribeFromTopic()](https://firebase.google.com/docs/cloud-messaging/android/topic-messaging#subscribe_the_client_app_to_a_topic)函數? –

回答

5

關於何時使用deleteToken()deleteInstanceId()的區別,請參考此answer


從註銷開始取消註冊應用程序實例(設備/用戶)是不可取的,因爲甚至是GCM。具體根據GCM docs

開發人員應從未註銷客戶端應用程序,作爲註銷的機制或用於用戶之間的切換,其原因如下:

  • 的註冊令牌不與特定相關聯的登錄用戶。如果客戶端應用程序取消註冊然後重新註冊,則應用程序可以接收相同的註冊令牌或不同的註冊令牌。

  • 取消註冊和重新註冊每個可能需要長達五分鐘才能傳播。在此期間,由於未註冊狀態,郵件可能會被拒絕,並且郵件可能會轉到錯誤的用戶。

如果仍想繼續,你仍然可以參考上面相同的文檔。

註銷和退訂

有三種方法的客戶機應用程序可以使用以停止從應用服務器接收消息和/或主題訂閱:

  • 實例id deleteToken()與受衆羣設置爲應用服務器的發件人ID,並將範圍設置爲GCM。這會停止來自特定應用服務器的消息(包括主題消息)。

  • InstanceID deleteID()。這將停止的消息從以前的所有註冊和主題訂閱的所有應用服務器

  • GCMPubSub退訂()。這將停止從應用服務器

的特定主題對於FCM主題的消息,應該是FirebaseInstanceId

+0

是的,這是真的,但。主題與分組有關。例如。體育。因此使用主題的目的是與一組用戶進行通信。那不是我想要的。我想管理個人用戶。如果我想通過令牌與單個用戶進行通信。但是讓我們說用戶註銷。但是溝通仍然是不可能的。 –

+0

@HashanSenevirante你的意思是完全取消註冊用戶? –

+0

是的。一旦用戶再次登錄,再次註冊。 –