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

无需Firebase CLI,如何在Flutter中配置仅使用FCM的Firebase项目

在Flutter中无需Firebase CLI配置仅使用FCM的方案

一、手动配置Firebase项目(无需CLI)

不用Firebase CLI也能完成FCM的基础配置,全程通过Firebase控制台手动操作:

  • 登录Firebase控制台,创建新项目,可直接跳过Google Analytics配置(仅用FCM不需要)。
  • 添加Android应用:
    1. 输入Android包名(和Flutter项目的android/app/build.gradle里的applicationId一致)。
    2. 下载google-services.json文件,将其放到Flutter项目的android/app目录下。
    3. 手动配置Android Gradle:
      • 在android/build.gradle的buildscript块中添加Google服务插件依赖:
        dependencies {
            // 其他依赖
            classpath 'com.google.gms:google-services:4.4.0'
        }
        
      • 在android/app/build.gradle末尾添加:
        apply plugin: 'com.google.gms.google-services'
        
  • 添加iOS应用:
    1. 输入iOS Bundle ID(和Flutter项目的ios/Runner.xcodeproj/project.pbxproj里的PRODUCT_BUNDLE_IDENTIFIER一致)。
    2. 下载GoogleService-Info.plist文件,拖入Flutter项目的ios/Runner目录,确保勾选"Copy items if needed"。
    3. 在Xcode中打开ios/Runner.xcworkspace,进入Runner target的Signing & Capabilities,添加"Push Notifications"和"Background Modes"(勾选"Remote notifications")。

二、Flutter依赖配置

在pubspec.yaml中添加必要的依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^2.24.0
  firebase_messaging: ^14.7.11

执行flutter pub get安装依赖。

三、可直接使用的FCM核心代码示例

以下是涵盖初始化、Token获取、消息监听的完整代码:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // 后台接收消息时的处理逻辑
  print("处理后台消息: ${message.messageId}");
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化Firebase核心
  await Firebase.initializeApp();
  
  // 设置后台消息处理器
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

  // 获取设备FCM Token
  String? token = await FirebaseMessaging.instance.getToken();
  print("设备FCM Token: $token");

  // 监听前台消息
  FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    print("收到前台消息");
    print("标题: ${message.notification?.title}");
    print("内容: ${message.notification?.body}");
    // 可在这里弹出本地通知
  });

  // 监听应用在后台时点击通知的事件
  FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
    print("点击通知打开应用");
    // 可在这里跳转指定页面
  });

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'FCM Demo',
      home: Scaffold(
        appBar: AppBar(title: const Text('FCM测试')),
        body: const Center(child: Text('FCM配置完成')),
      ),
    );
  }
}

四、额外补充:本地通知适配(可选)

如果需要在前台收到FCM消息时弹出通知,需添加flutter_local_notifications依赖,示例代码片段:

// 初始化本地通知
late FlutterLocalNotificationsPlugin _localNotificationsPlugin;

void initLocalNotifications() {
  const AndroidInitializationSettings androidSettings = AndroidInitializationSettings('@mipmap/ic_launcher');
  const DarwinInitializationSettings iosSettings = DarwinInitializationSettings();
  const InitializationSettings settings = InitializationSettings(android: androidSettings, iOS: iosSettings);
  _localNotificationsPlugin = FlutterLocalNotificationsPlugin();
  _localNotificationsPlugin.initialize(settings);
}

// 在前台消息监听中调用
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  if (message.notification != null) {
    _localNotificationsPlugin.show(
      0,
      message.notification?.title,
      message.notification?.body,
      const NotificationDetails(
        android: AndroidNotificationDetails('channel_id', 'channel_name', importance: Importance.max),
        iOS: DarwinNotificationDetails(),
      ),
    );
  }
});

五、测试方法

  • 使用Firebase控制台的"Cloud Messaging"模块,输入设备Token或选择目标应用,发送测试消息。
  • 或使用curl命令发送:
curl -X POST "https://fcm.googleapis.com/fcm/send" \
-H "Authorization: key=你的服务器密钥" \
-H "Content-Type: application/json" \
-d '{
  "to": "设备FCM Token",
  "notification": {
    "title": "测试标题",
    "body": "测试内容"
  }
}'

服务器密钥可在Firebase控制台的项目设置→云消息传递中获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:05:05