You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Firebase Messaging发送主题消息无示例,求助使用方法

Flutter Firebase Messaging 主题消息发送说明

首先明确:Flutter端的firebase_messaging SDK不支持直接发送主题消息,发送主题消息的操作需要通过Firebase控制台、Firebase Admin SDK(服务器端)或者FCM HTTP API来完成,客户端仅负责订阅/取消订阅主题以及接收消息。

关于FirebaseMessaging.instance.sendMessage的说明

这个方法是用于客户端向单个指定设备发送消息,而非主题群发,使用时需要传入目标设备的FCM token,示例代码如下:

await FirebaseMessaging.instance.sendMessage(
  to: "目标设备的FCM Token",
  messageId: "自定义消息ID",
  data: {
    "title": "测试消息",
    "body": "这是一条客户端发送的消息",
  },
);

发送主题消息的正确方式

方式1:通过Firebase控制台

  1. 登录Firebase控制台,进入你的项目
  2. 打开「Cloud Messaging」模块
  3. 点击「发送您的第一条消息」,填写消息内容
  4. 在「目标」选项中选择「主题」,输入你要发送的主题名称(比如你之前订阅的topic)
  5. 配置其他选项后,点击「发送测试消息」即可

方式2:通过Firebase Admin SDK(服务器端,以Node.js为例)

const admin = require('firebase-admin');
admin.initializeApp();

// 发送主题消息
admin.messaging().sendToTopic('topic', {
  notification: {
    title: '主题通知',
    body: '这是发送给topic主题订阅者的消息',
  },
  data: {
    customKey: 'customValue',
  },
})
.then((response) => {
  console.log('消息发送成功:', response);
})
.catch((error) => {
  console.log('消息发送失败:', error);
});

方式3:通过FCM HTTP API

发送POST请求到https://fcm.googleapis.com/fcm/send,请求头需要包含Authorization: key=你的服务器密钥,请求体示例:

{
  "to": "/topics/topic",
  "notification": {
    "title": "主题通知",
    "body": "这是发送给topic主题订阅者的消息"
  },
  "data": {
    "customKey": "customValue"
  }
}

你之前用FirebaseMessaging.instance.subscribeToTopic("topic");完成订阅是正确的,现在只要通过上述任意一种方式发送主题消息,订阅该主题的设备就能收到通知。

内容的提问来源于stack exchange,提问作者Noor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:15:42