获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Flutter 上的主题消息传递

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

例如,本地潮汐预报应用程序的用户可以选择“潮汐流警报”主题并接收指定区域最佳咸水捕鱼条件的通知。体育应用程序的用户可以订阅他们最喜欢的球队实时比赛比分的自动更新。

有关主题的一些注意事项:

  • 主题消息最适合天气或其他公开信息等内容。

  • 主题消息针对吞吐量而不是延迟进行了优化。为了快速、安全地传送到单个设备或一小组设备,将消息定位到注册令牌,而不是主题。

  • 如果您需要向每个用户的多个设备发送消息,请考虑针对这些用例的设备组消息传递

  • 主题消息支持对每个主题的无限订阅。但是,FCM 在这些方面实施了限制:

    • 一个应用实例可以订阅不超过 2000 个主题。
    • 如果您使用批量导入订阅应用实例,则每个请求限制为 1000 个应用实例。
    • 新订阅的频率受每个项目的速率限制。如果您在短时间内发送过多的订阅请求,FCM 服务器将响应429 RESOURCE_EXHAUSTED (“超出配额”)响应。使用指数退避重试。

为客户端应用程序订阅主题

客户端应用程序可以订阅任何现有主题,也可以创建新主题。当客户端应用程序订阅一个新主题名称(您的 Firebase 项目尚不存在的主题名称)时,将在 FCM 中创建一个具有该名称的新主题,随后任何客户端都可以订阅它。

要订阅主题,请使用主题名称调用subscribeToTopic() 。此方法返回一个Future ,它在订阅成功时解析:

await FirebaseMessaging.instance.subscribeToTopic("topic");

要取消订阅,请使用主题名称调用unsubscribeFromTopic()

下一步