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

如何借助Firebase实现推送通知触达Flutter应用?需两端编码吗?

实现Firebase Web后台触发Flutter应用接收推送通知的方案

完全可以实现你描述的需求,且确实需要在Flutter应用与Firebase Web后台两端编写对应代码,以下是具体实现逻辑:

Flutter应用端需要做的操作

  • 集成FCM依赖:在项目的pubspec.yaml中添加firebase_messaging插件,完成Firebase初始化配置。
  • 获取并存储FCM令牌:调用FirebaseMessaging.instance.getToken()获取当前设备的推送令牌,将这个令牌关联到用户ID或设备标识,存储到Firebase的Firestore或实时数据库中——这是后台定位目标设备的唯一凭证。
  • 配置通知接收逻辑:
    • 监听前台通知:用FirebaseMessaging.onMessage处理应用在前台运行时的通知接收,可自定义弹窗或提示。
    • 处理后台/终止状态通知:通过FirebaseMessaging.onMessageOpenedApp监听用户点击通知打开应用的行为,跳转至对应页面。
    • 平台权限配置:Android需确保应用获取通知权限,iOS要配置APNs证书并开启推送权限。

Firebase Web后台端需要做的操作

  • 编写触发推送的逻辑:在后台特定操作(比如Firestore文档新增、用户提交表单等)发生时,调用FCM的发送API推送通知。通常用Firebase Functions实现这个触发逻辑。
  • 示例代码片段(Node.js版Firebase Function):
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();

// 监听Firestore中orders集合的新增文档事件,触发推送
exports.sendOrderNotification = functions.firestore
  .document("orders/{orderId}")
  .onCreate(async (snap, context) => {
    // 从数据库获取目标用户的FCM令牌
    const userData = await admin.firestore().doc(`users/${snap.data().userId}`).get();
    const targetToken = userData.data().fcmToken;

    // 构造通知内容
    const notificationMessage = {
      notification: {
        title: "新订单提醒",
        body: "您收到了一笔新的订单,请及时处理"
      },
      token: targetToken
    };

    // 发送通知
    try {
      await admin.messaging().send(notificationMessage);
      console.log("通知发送成功");
    } catch (err) {
      console.error("通知发送失败:", err);
    }
  });

核心逻辑总结

Flutter端负责提供目标设备的标识(FCM令牌)和处理通知的接收与交互,Web后台负责监听触发事件并调用FCM API向指定令牌发送通知,两者配合才能完成完整的推送流程,缺一不可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:25:15