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

是的。一旦用户再次登录,再次注册。 –