当一个用户A登录然后注销。 然后,用户B登录。 因为未删除为用户A生成的令牌,所以从用户B接收了针对用户A的通知。 dart程序包中没有用于删除此令牌的选项。
答案 0 :(得分:2)
您可以通过调用deleteInstanceID
来实现。请注意,deleteInstanceID
会自动重新创建令牌,因此您必须setAutoInitEnabled
事先将其设置为false。您可以通过查询autoInitEnabled
来检查当前的自动初始化值。
注意:要求firebase_messaging
版本2.1.0或更高版本。
答案 1 :(得分:0)
来自Official documentation的注释:
<块引用>已弃用:deleteInstanceID() 已被弃用,取而代之的是 deleteToken()
因此,要使当前令牌无效,只需将此代码添加到您的注销功能中即可:
await FirebaseMessaging.instance.deleteToken();
此后,服务器向此令牌发送的消息将失败。