通过取消注册限制GCM / FCM通知

时间:2016-11-14 13:12:13

标签: android firebase google-cloud-messaging firebase-cloud-messaging

有没有办法限制Firebase推送通知注册?不寻找主题。我们说我有登录功能。我希望登录用户订阅推送通知。然后令牌可以发送到服务器并存储。

在用户注销的同时,用户也应该取消注册。

目前有可用的机制吗?我浏览了Firebase API文档,但我找不到任何内容。

只是想知道我是否遗漏了任何东西。

2 个答案:

答案 0 :(得分:8)

有关何时使用deleteToken()deleteInstanceId()的区别,请参阅此answer

因为即使是GCM,也不建议在注销时取消注册应用实例(设备/用户)。根据{{​​3}}

  

开发人员永远不应该注销客户端应用程序作为注销或在用户之间切换的机制,原因如下:

     
      
  • 注册令牌与特定登录用户无关。如果客户端应用程序取消注册然后重新注册,则应用程序可以接收相同的注册令牌或不同的注册令牌。

  •   
  • 取消注册和重新注册最多可能需要五分钟才能传播。在此期间,由于未注册状态,消息可能会被拒绝,并且消息可能会发送给错误的用户。

  •   

如果您仍想继续,仍然可以参考上述相同的文档。

  

取消注册和取消订阅

     

客户端应用程序可以使用三种方法停止从应用服务器接收消息和/或主题订阅:

     
      
  • InstanceID deleteToken(),其受众群体设置为应用服务器的发件人ID和范围设置为GCM。这会阻止来自特定应用服务器的消息(包括主题消息)

  •   
  • InstanceID deleteID()。这将停止所有应用服务器的所有先前注册和主题订阅的消息

  •   
  • GCMPubSub取消订阅()。这会停止来自应用服务器

  • 的特定主题的主题消息   

对于FCM,它应该是FirebaseInstanceId

答案 1 :(得分:0)

另一种可以禁止接收推送通知的方法是,您可以从后端调用API,以删除登录时已接收并发送给后端的现有Firebase令牌。如果设备令牌在数据库中不存在,您的设备将根本不会收到通知。

相关问题