如何在从应用程序注销后取消订阅FCM通知?

10

我已经在我的应用程序中实现了Firebase云消息传递,以便进行推送通知。一切正常。但是,即使用户退出应用程序,通知也会继续到达。

我听说,当用户从应用程序注销时,需要删除FCM令牌。

因此,在注销方法中,我这样做:

-(void)logout{
        [[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error){
            NSLog(@"%@",error);
        }];
}

但是这种方法不起作用,下一次用户登录时 [[FIRInstanceID instanceID]token]将会显示为null

如何解决?

1个回答

4
你可以删除令牌,但最好是取消订阅。如何操作取决于你最初订阅更新的方式。
如果你订阅了一个主题,当用户退出时,你会想要取消订阅

我正在订阅像这样的主题 [[FIRMessaging messaging] subscribeToTopic:@"/topics/global"]; 所以当用户退出时,我需要这样做 [[FIRMessaging messaging] unsubscribeFromTopic:@"/topics/global"]; 对吗? - Himanth
是的,这就是取消订阅相同主题的方法。 - Frank van Puffelen
但我可以看到这是针对 FCM 消息的。这对于 FCM 通知也是一样的吗? - Himanth
是的,Firebase通知本质上只是Firebase云消息传递的一个包装。但既然您在原始帖子中提到了FCM,我只想引用FCM的文档。我建议您尝试一下并报告是否仍然遇到问题? - Frank van Puffelen
3
每次用户登出时删除令牌并不可取。请参见这里 - AL.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接