Firebase Messaging FCM 在可配置时间间隔内分发

Firebase Messaging FCM Distribution over configurable time interval

当您使用 FCM 向给定应用的所有设备发送推送时,这可能会导致许多用户同时打开他们的应用,从而导致大量服务器轮询,从而导致负载高峰。

有没有一种方便的方法可以在给定的时间间隔内为计划推送分发消息?

据我所知,没有任何内置的东西会导致一些伪随机分发。但这里有一些我能想到的选择:

  1. 从 Firebase 控制台,您可以安排消息在用户的时区内传送。如果您有全球受众,这意味着消息的传递将分布在全球范围内。
  2. 通过 API 您可以传递 data-only message 的信息。此消息类型不会由系统自动显示,但始终由您的应用程序代码传递。然后您的代码可以保留消息并在随机延迟后显示它。

最后,我们找到了一种可能的方法,通过定义具有给定范围的伪随机主题来实现基于时间的分布目标。

例如,该应用会计算 0 到 9 之间的随机整数,并将其用作随机分段(“segment_0”到“segment_9”)的后缀。现在,您可以通过以编程方式向定义的段发送推送或在给定时间跨度内使用 Firbase 控制台来分发推送。