我应该存储Android设备令牌以发送推送通知吗?

时间:2017-09-05 13:42:17

标签: android firebase-cloud-messaging android-push-notification

我正在开发一款应用,需要实施Android推送通知。

我决定直接使用Firebase云消息传递;不使用任何其他抽象,如AWS SNS或Pusher。

我想通过以下方法避免在后端存储和管理设备令牌

在Android应用程序中。

  1. 当用户登录到Android应用程序时,获取设备令牌但不将其发送到服务器。
  2. 订阅基于约定惯例的主题,以使该主题对该用户而言是唯一的。
  3. 退出时取消订阅该主题。
  4. 在服务器中。

    1. 每当出现向特定用户发送通知的情况时,请根据惯例向主题发送推送通知。
    2. 我想知道这是否是避免管理设备令牌的可行策略?

      反对使用主题的案例。

      来自官方docs

        

      基于发布/订阅模型,FCM主题消息传递允许您向已选择加入特定主题的多个设备发送消息。您可以根据需要编写主题消息,FCM可以处理路由并将消息可靠地传递给正确的设备。

           

      例如,本地天气预报应用的用户可以选择加入“恶劣天气警报”主题,并接收威胁指定区域的风暴通知。体育应用的用户可以为他们喜爱的球队订阅实时比赛分数的自动更新。

      当要通知多个设备时,我发现建议使用主题。但是我决定为每个用户创建一个主题,这意味着大多数主题最终只会被一个设备订阅;这种方法可以吗?

2 个答案:

答案 0 :(得分:0)

  

我知道当要通知多个设备时,建议使用主题

是的,有多个设备可以收听,这是主题。主题用于一般客户端可以接收的消息,因为它是公共的 - 即任何人都可以订阅和接收发送给它的消息。

建议用于多个设备但相同用户的用途是使用设备组(有关Managing Device Groups的提示,请参阅我的回答)。但是,如果您不介意“主题是公开的”部分,那么您的方法应该没问题。

答案 1 :(得分:0)

是的,如果我们想发送安装了您应用的推送通知,则需要设备令牌。 根据我的理解,我的研究可以在第一次安装您的应用时保存设备令牌,这样我们就可以轻松地在所有设备上发送推送通知。