Firebase FCM 变得非常不稳定。寻找解决方案/替代方案

Gil*_*oot 5 android push-notification firebase-cloud-messaging

我们拥有超过一百万订阅者的应用程序面临着 FCM 的巨大交付问题。最近情况变得更糟,服务几乎不再工作。我们收到如下错误:

 { code: 'messaging/message-rate-exceeded',
 message: 'Topic quota exceeded.' },
codePrefix: 'messaging' }
Run Code Online (Sandbox Code Playgroud)

我们经常收到这个错误。在欧盟/美国晚上,情况似乎更糟。在某些情况下,超过 90% 的通知都失败了。我们正在与 firebase 支持团队联系,但到目前为止似乎没有解决方案。不过,它为我们提供了大量信息和一些有用的事实:

  • 资源在开发者之间共享。因此,由于其他开发人员占用资源,因此最大消息速率可能会有所不同。
  • OR 查询应转换为多个 AND 查询,因为 OR 查询实际上会向所有用户群生成消息,然后应用过滤条件
  • 240 条消息/分钟和 5,000 条消息/小时到单个设备。
  • 将上游消息限制在每个项目 15,000/分钟(我们不理解这个)
  • 将每台设备的上行消息限制为 1,000/分钟

他们还在https://firebase.google.com/docs/cloud-messaging/concept-options#topics_throttling更新了他们的文档

所以我们知道消息速率限制和扇出机制。在我们的例子中,我们每小时大约有 6000 个不同的主题发送请求,每个主题平均有 10k 订阅者。单个用户每小时不会收到超过 50-100 条通知。我们相信我们没有达到 FCM 设定的限制。

回到 GCM 时代,一切正常。所以我们对目前的情况很不满意。该应用程序的核心功能现在非常糟糕。而且似乎没有解决方案。

我们正在考虑改用 SSE 解决方案。有一个关于有人成功离开 FCM 的故事 https://f-droid.org/en/2018/09/03/replacing-gcm-in-tutanota.html 但由于谷歌最近很难拥有后台进程正在运行,我想知道其他有类似经历的人做了什么。或者我们还能解决这个问题吗?

小智 1

其中一种替代方案是Cloud Alert - 它可以取代 FCM,提供高吞吐量和无限的消息。它使用后台作业并维护与其专用服务器的连接。虽然有免费套餐,但您的 100 万连接要求将使您进入付费套餐。

披露:我在 Cloud Alert 工作。