Flutter Firebase初始化报MissingPluginException及Windows空白修复
Flutter Windows端Firebase初始化MissingPluginException修复方案
问题现象
运行Flutter待办应用Windows版本时,执行到await Firebase.initializeApp()抛出以下异常,应用页面空白:
MissingPluginException(No implementation found for method Firebase#initializeCore on channel plugins.flutter.io/firebase_core)
问题对应main.dart代码如下:
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:todo_firebase/auth/authscreen.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:todo_firebase/screens/home.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); //initilization of Firebase app // other Firebase service initialization runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( home: StreamBuilder( stream: FirebaseAuth.instance.authStateChanges(), builder: (context, usersnapshot) { if (usersnapshot.hasData) { return Home(); } else { return AuthScreen(); } }, ), debugShowCheckedModeBanner: false, theme: ThemeData(brightness: Brightness.light, primaryColor: Colors.blue), // ignore: dead_code ); } }
修复步骤
按顺序执行以下操作即可解决问题:
- 清理旧构建缓存,停止所有正在运行的Flutter应用,在项目根目录执行命令:
flutter clean flutter pub get
- 重新生成Windows平台插件注册配置。添加FlutterFire依赖后如果没有重新生成平台配置,会出现找不到插件实现的错误,执行以下命令,该操作不会覆盖lib目录下的业务代码,仅补全原生平台的插件绑定文件:
flutter create . --platforms=windows
如果之前手动修改过windows/runner目录下的原生配置,执行该命令前先备份对应文件。
- 补全Firebase初始化的平台配置。当前代码中
Firebase.initializeApp()没有传入Windows平台的配置参数,Windows端不会自动读取安卓/iOS的配置文件,必须显式传入配置:- 优先使用FlutterFire CLI自动生成配置:安装CLI后在项目根目录执行
flutterfire configure,按提示选择对应的Firebase项目、勾选Windows平台,会自动生成lib/firebase_options.dart配置文件。 - 修改初始化代码为:
如果不使用CLI自动生成,也可以手动从Firebase控制台复制Windows应用的配置参数,构造// 引入自动生成的配置文件 import 'firebase_options.dart'; // 修改初始化逻辑 await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, );FirebaseOptions传入即可。 - 优先使用FlutterFire CLI自动生成配置:安装CLI后在项目根目录执行
- 完全关闭之前构建的Windows应用,重新执行
flutter run -d windows启动。注意:原生插件的改动不支持热重载/热重启,必须完全重启应用才能生效。
额外排查点
如果执行完以上步骤还是报错,检查以下两点:
- 升级FlutterFire相关依赖到最新稳定版:在
pubspec.yaml中把firebase_core、firebase_auth、cloud_firestore的版本更新为最新空安全稳定版,重新执行flutter pub get。 - 打开
windows/flutter/generated_plugins.cmake文件,检查文件列表中是否包含firebase_core、firebase_auth、cloud_firestore三个插件的注册项,如果没有,重新执行一次flutter create . --platforms=windows命令即可。
内容的提问来源于stack exchange,提问作者Tarushi
相关产品推荐
相关产品推荐

