SuperAPI AI 工具集

firebase-messaging

通用与其它

查看项目

更新于 10-16 05:07

技能介绍

用途:在 Flutter 项目中集成 Firebase Cloud Messaging(FCM),实现推送通知的配置、接收与交互处理。

主要能力:

  • 安装与平台配置:flutter pub add firebase_messaging;iOS 需在 Xcode 开启 Push Notifications 与 Background Modes、上传 APNs 认证密钥且不关闭 method swizzling;Android 需 4.4+ 且安装 Google Play 服务;Web 需在 web/ 目录注册 firebase-messaging-sw.js。
  • 消息处理:前台用 FirebaseMessaging.onMessage.listen;后台处理函数须为顶层函数并加 @pragma('vm:entry-point'),且需先 await Firebase.initializeApp(),不能更新应用状态或执行影响 UI 的逻辑。
  • 权限:用 requestPermission 请求 alert、badge、sound 等;iOS/macOS/Web/Android 13+ 必须先请求权限。
  • 令牌管理:getToken 获取注册令牌,Web 需提供 VAPID key;用 onTokenRefresh 监听刷新;Apple 平台先确认 getAPNSToken 可用;令牌应绑定用户会话,登录时保存、登出时清除。
  • 通知点击:终止状态用 getInitialMessage,后台状态用 onMessageOpenedApp.listen,两者都需处理。
  • 主题订阅:subscribeToTopic / unsubscribeFromTopic,适合公开信息,Web 客户端不支持。
  • 服务端发送:旧版 server key 已于 2024 年 6 月弃用,仅支持 HTTP v1;需服务账号私钥,严禁提交到 git,应存入 Secret Manager 或环境变量。

限制:iOS 用户上滑关闭应用后需手动重开才能收后台消息;Android 强制停止同理;iOS 模拟器不显示推送图片,需真机测试;Android 前台通知默认不显示,需自行处理;自动初始化设置一旦设定会跨重启保留。

测试消息可在 Firebase 控制台 Messaging 中新建 campaign 并发送测试消息;生产自动化推送须使用服务端实现。