Firebase 云消息传递:最佳实践

Posted

技术标签:

【中文标题】Firebase 云消息传递:最佳实践【英文标题】:Firebase Cloud Messaging: best practice 【发布时间】:2016-10-25 19:57:44 【问题描述】:

我正在迁移到 Firebase 云消息传递,但我有一个疑问。 我的应用程序在启动时必须显示登录屏幕,如果用户在另一个帐户中执行登录,我必须停止为老用户发送通知。

最好的方法是什么? 我可以强制应用更新令牌吗? 或者我应该自己更新我基地中令牌的所有者?

【问题讨论】:

【参考方案1】:

在应用程序内部如果您不想让通知发送到旧令牌,您应该更新实例 ID 令牌并忘记旧令牌。在每次注销和登录时,只需获取新的实例 ID 并使用有关分配给该用户的新令牌的信息更新您的外部数据库(以防您的应用程序逻辑需要它):) 生成新令牌没有限制,一旦删除就不能重用令牌。

更新令牌只是再次调用 getToken()。

这是最好的方法,因为 InstanceID 实际上已分配给“应用程序实例”,因此如果在设备上重新安装应用程序或用户删除缓存,您无论如何都必须获取新令牌。

【讨论】:

我第一次安装了我的应用程序,调用了 onTokenRefresh 函数并给了我一个新的令牌。因此,在某些时候,我尝试调用 FirebaseInstanceId.getInstance().getToken(),它给了我与以前相同的令牌。是不是你说的重新生成token号的方法?【参考方案2】:

在我开发的一款应用中,我在我的应用云上进行了处理。

Cloud 有两个表,一个带有用户登录设备 ID 的表格,另一个带有分配给设备的实例 ID。

您可以做的是,当用户从设备注销时,从用户设备列表中删除该设备 ID,并在新用户登录时将设备 ID 添加到他的设备。

发送通知时,您可以使用令牌设备,其他一切都将简化

【讨论】:

以上是关于Firebase 云消息传递:最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息传递重复通知

Firebase 云消息传递 - 有多个主题 - 没有消息重复

firebase 云消息传递请求包含无效参数

Firebase 云消息传递通知图像定价

使用 Flutter 测试 Firebase 云消息传递

Firebase 云消息传递报告错误