【发布时间】:2017-09-05 13:42:17
【问题描述】:
我正在开发一个需要实现 Android 推送通知的应用。
我决定直接使用 Firebase Cloud Messaging;不使用任何其他抽象,例如 AWS SNS 或 Pusher。
我想避免在后端存储和管理设备令牌,方法是使用以下方法。
在安卓应用中。
- 用户登录安卓应用时,获取设备令牌,但不发送到服务器。
- 订阅基于约定约定的主题,以便该主题对该用户而言是唯一的。
- 注销时退订主题。
在服务器中。
- 每当出现向特定用户发送通知的情况时,根据约定向主题发送推送通知。
我想知道这是否是避免管理设备令牌的可行策略?
反对使用主题的案例。
来自官方docs。
基于发布/订阅模型,FCM 主题消息传递允许您向已选择加入特定主题的多个设备发送消息。您可以根据需要编写主题消息,FCM 会处理路由并将消息可靠地传递到正确的设备。
例如,本地天气预报应用程序的用户可以选择加入“恶劣天气警报”主题并接收风暴威胁指定区域的通知。体育应用的用户可以订阅他们最喜欢的球队的实时比赛比分的自动更新。
当要通知多个设备时,我看到建议使用主题。但是我决定为每个用户创建一个主题,这意味着大多数主题最终只会被一台设备订阅;这种方法可以吗?
【问题讨论】:
-
所以本质上你想避免使用device groups?我不明白为什么您的方法不起作用,但是您会将主题用于他们不打算做的事情,因此您一定会遇到一些问题。所以我的问题是为什么当你的用例正是它们的用途时,你想避免使用令牌?
-
@Bryan 从长远来看,不必在后端存储数据是一种更好的方法。存储令牌意味着我需要在用户注销应用程序或用户会话到期时删除这些令牌。使用主题将帮助我不管理数据。我发现主题更简单。
标签: android firebase-cloud-messaging android-push-notification