用户注销时如何发送通知?

Posted

技术标签:

【中文标题】用户注销时如何发送通知?【英文标题】:How can I send notifications when a user is logged out? 【发布时间】:2019-05-02 01:40:38 【问题描述】:

我在我的应用程序中开发了推送通知 (FCM) 功能,运行良好。我面临的唯一问题是设备在这段时间内离线/注销,如果用户收到他们丢失的通知,而不是在用户上线时发送。

【问题讨论】:

给更多的细节,没有任何示例代码是不可能帮助你的。 为什么不使用 fcm Firebase Cloud Messaging 它比 GCM 更优化。并且很容易实现 @MasterFathi ohhh ..sorry..我编辑了我的问题..我已经使用过 FCM @PedroMassango 我添加了图片来解释错误 您发送的通知对象是只包含数据还是包含通知正文? 【参考方案1】:

从我从您的屏幕截图中看到的问题发生是因为您正在向空的 deviceToken 发送通知。如果要发送通知,则需要停止删除该令牌。

要从您的 android 应用程序中获取新令牌,请编写此代码

System.out.print("Firebase Token "+ FirebaseInstanceId.getInstance().getToken());

【讨论】:

我这样做了,但是当注销并与另一个用户一起登录到我的应用程序时....token_id 没有改变....我的意思是 2 个具有一个令牌 ID 的用户所以我尝试删除令牌注销时的id Token是App-Device关系的ID结果 @esdebon 所以.. 我可以使用 Auth ID 令牌替换 FCM 令牌/实例 ID 令牌来推送通知........我认为是 Auth ID令牌标识特定应用程序的特定用户?? 您需要为每个用户存储令牌而不是删除它,当您想向该用户或所有连接的用户发送通知时,您转到用户列表并获取所有令牌并发送每个分别。【参考方案2】:

推送通知有一个过期时间,这是你发送通知时的一个参数,这个过期时间是天的数量级,当用户在发送通知的期限内重新上线时。也许您需要使用 Firebase 创建通知,因为 GCM 很快就会被弃用。

注册令牌可能会在以下情况下发生变化:

The app deletes Instance ID
The app is restored on a new device
The user uninstalls/reinstall the app
The user clears app data.

【讨论】:

以上是关于用户注销时如何发送通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何在出现之前过滤ios推送通知

如何配置 azure 应用以在从应用中删除用户时发送通知

如何在出现之前过滤 ios 推送通知

读取超时的 Firebase 消息注销通知失败

Apple 推送通知、注销应用和删除应用问题/解决方案

何时创建 PFInstallation