有没有一种方法可以限制 Firebase 推送通知的注册?不是寻找主题。假设我有一个登录功能,我希望已登录的用户订阅推送通知。然后将 token 发送到服务器并存储。
与此同时,当用户退出时,用户也应该被注销。
那么目前是否有可用的机制?我查看了 Firebase API 文档,但没有找到相关内容。
只想知道是否错过了什么。
与此同时,当用户退出时,用户也应该被注销。
那么目前是否有可用的机制?我查看了 Firebase API 文档,但没有找到相关内容。
只想知道是否错过了什么。
关于何时使用deleteToken()
和deleteInstanceId()
的区别,请参考此答案。
注销应用程序实例(设备/用户)登录不可取,即使是GCM。根据GCM文档
开发人员不应注销客户端应用程序作为注销或在用户之间切换的机制,原因如下:
注册令牌与特定已登录的用户无关。如果客户端应用程序注销然后重新注册,则应用程序可以接收相同的注册令牌或不同的注册令牌。
注销和重新注册可能需要多达五分钟才能传播。在此期间,由于未注册状态,消息可能会被拒绝,而且消息可能会发给错误的用户。
如果您仍想继续,请仍可参考上述文档。
注销和取消订阅
客户端应用程序可以使用三种方法停止从应用程序服务器接收消息和/或主题订阅:
InstanceID deleteToken(),并将audienc设置为应用程序服务器的发送者ID,scope设置为GCM。这将停止来自特定应用程序服务器的消息(包括主题消息)
InstanceID deleteID()。这将停止所有上一次注册和所有应用程序服务器的主题订阅的消息
GCMPubSub unsubscribe()。这将停止指定应用程序服务器的特定主题的主题消息
对于FCM,应该使用FirebaseInstanceId
。
deleteToken
不起作用,至少对于 FCM(即使使用此方法,消息仍然会继续到来)。deleteId
已经不存在了。unsubscribe
仅适用于主题,这可能并不总是一个解决方案(对我来说不是)。我是否遗漏了什么?请查看我的问题:https://dev59.com/NFgQ5IYBdhLWcg3wLQ2W - Michał Klimczak