是否需要取消订阅FCM主题?

时间:2019-02-14 14:13:24

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

我在一个项目中使用Firebase(FCM),在该项目中,我使用主题功能向各个时区的许多不同用户发送每日通知。通知总是发出的,当用户时间为12:00 PM时,为了实现这一点,我每天都会为要通知的用户创建一个唯一的主题。目前,我们的主题如下所示:x_daily_notification_1550152751-以前我有一个系统可以根据时区创建静态主题,因此可以向用户订阅类似x_daily_notification_europe_london的主题,但是事实证明,该主题过于不可靠且难以管理,由于用户在时区之间移动。

该系统的工作方式基于我在去年下半年提出的问题中的研究和建议:FCM topic limits and expiration/invalidation of old unused topics?

所以总结一下:

  1. 批量向用户订阅主题
  2. 5分钟后,发送主题。延迟是由于在发送通知之前不知道FCM是否等待所有批量订阅处理
  3. 发送主题后10分钟,再次取消订阅该主题的所有令牌,从FCM中删除该主题。

这些延迟的原因是,我注意到有时我们没有收到通知。我能想到的唯一原因是,因为我们发送和取消订阅该主题的速度太快,因此,如果要通知10万个用户,并且立即将其删除,则只有少数人能得到它。看来FCM不会等待一个请求完成才处理另一个请求。

即使我在退订之前等待了10分钟,似乎有时也未收到所有用户的通知,这可能意味着在我再次退订之前,未对他们进行处理,因此我想等待更长的时间,然后再取消订阅所有用户。主题,以确保他们已收到通知。我想到的第一个解决方案是等待,直到下一批准备好处理,然后删除上一个主题,这大约是一个小时,之后,我可以或多或少地确定每个人都在那一点。

我真正的问题是,我是否完全需要退订?它可能会使Firebase混乱,但可以肯定的是,他们有适当的系统来处理此问题,因为它在文档中没有提及任何有关清理的内容。

0 个答案:

没有答案