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

如何从flutter-web端向同Firebase项目下的flutter应用发送通知?

Flutter Web 向同Firebase项目下Flutter原生应用推送通知实现方案

前置配置校验

  • 所有Flutter原生端已完成firebase_messaging集成,实现前台、后台、杀死状态下的通知接收逻辑,应用启动后主动上报FCM registration token至存储层(可选择自有后端数据库、Firebase Firestore/Realtime Database,需配置合理的读写规则避免token泄露)
  • 所有Flutter Web端已完成FCM Web侧配置,包含Web FCM密钥、VAPID密钥配置,且所有端共用同一套用户身份鉴权体系,方便按用户、设备维度匹配推送目标

可选实现方案

方案1:基于Cloud Functions for Firebase 中转推送(生产环境首选)

该方案安全性、稳定性最高,无需自行搭建服务器,完全复用Firebase生态能力,实现流程如下:

  1. 在Firebase控制台开启Cloud Functions服务,编写云函数作为推送触发入口,权限校验、推送逻辑全部在云端执行,避免密钥泄露风险
    云函数示例代码:
const admin = require('firebase-admin');
admin.initializeApp();

// 可调用云函数,自动校验Firebase Auth身份
exports.triggerPush = functions.https.onCall(async (data, context) => {
  // 校验请求发起者身份
  if (!context.auth) {
    throw new functions.https.HttpsError('unauthenticated', '无操作权限');
  }
  // 构造通知 payload
  const messagePayload = {
    token: data.targetDeviceToken,
    notification: {
      title: data.noticeTitle,
      body: data.noticeContent
    },
    data: data.customParams || {}
  };
  // 执行推送
  await admin.messaging().send(messagePayload);
  return { code: 0, msg: '推送成功' };
});
  1. Flutter Web端需要发起推送时,携带目标设备token、通知标题、通知内容、自定义业务参数,直接调用上述云函数即可
  2. Flutter原生端已集成的FCM接收逻辑会自动捕获推送通知,按业务需求处理跳转、数据解析即可

方案2:Web端直接调用FCM HTTP v1 API推送(轻量测试/小范围场景适用)

无需部署云端代码,适合快速验证需求,注意做好权限管控:

  • 在Firebase控制台生成FCM HTTP v1 API的服务账号密钥,仅授权给Web端的管理员角色用户获取临时访问令牌,禁止明文硬编码密钥到前端代码
  • Web端构造符合FCM接口规范的请求体,携带访问令牌调用FCM公开接口,指定目标registration token即可完成推送

扩展能力适配

  • 批量全量推送:所有原生端提前订阅指定FCM主题(Topic),推送时直接指定主题为目标,无需维护全量设备token列表
  • 按用户维度推送:存储层将用户ID与其名下所有设备的registration token绑定,推送时遍历对应用户名下所有token发送即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:09:03