如何在 Flutter 中删除 Firebase 云消息传递令牌

Posted

技术标签:

【中文标题】如何在 Flutter 中删除 Firebase 云消息传递令牌【英文标题】:How to remove Firebase Cloud Messaging Token in Flutter 【发布时间】:2019-04-05 11:30:20 【问题描述】:

当一个用户 A 登录然后注销时。 然后用户 B 登录。 用户 B 收到了针对用户 A 的通知,因为为用户 A 生成的令牌没有被删除。 dart 包没有删除此令牌的选项。

【问题讨论】:

【参考方案1】:

您可以通过调用deleteInstanceID 来完成此操作。请注意,deleteInstanceID 会自动重新创建令牌,因此您必须事先将 setAutoInitEnabled 设置为 false。您可以通过查询autoInitEnabled来查看当前的自动初始化值。

注意:需要firebase_messaging 2.1.0 或更高版本。

【讨论】:

【参考方案2】:

来自Official documentation的备注:

已弃用:deleteInstanceID() 已弃用,取而代之的是 删除令牌()

所以要使当前令牌无效,只需将此代码添加到您的注销功能:

await FirebaseMessaging.instance.deleteToken();

之后,服务器向该令牌发送的消息将失败。

【讨论】:

以上是关于如何在 Flutter 中删除 Firebase 云消息传递令牌的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何从 Firebase 数据库中删除最后一个节点?

如何在 Flutter 手机身份验证中删除验证码

Flutter:如何删除等待以利用 Firebase 离线持久性?

Flutter 和 Firebase:从 Firebase 中的数组中删除项目(地图)

如何更新在 Firebase 托管中部署的 Flutter Web 版本

Flutter:Firebase Realtime 从对象列表中删除对象