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

Flutter v2.2.1配置Firebase Realtime Database触发MissingPluginException异常

Flutter v2.2.1 对接Firebase Realtime Database MissingPluginException 排查方案

[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method DatabaseReference#set on channel plugins.flutter.io/firebase_database)

该异常为Dart层调用的firebase_database方法未找到原生端对应实现,按以下步骤依次排查:

1. 校验依赖版本兼容性

  • Flutter v2.2.1为空安全早期稳定版本,必须使用适配Flutter 2.x的firebase_database版本,禁止使用过高版本,推荐搭配firebase_database: ^9.0.12,该版本为官方最后一批支持Flutter 2.x的稳定版本
  • 项目内所有Firebase相关插件(包含firebase_core、firebase_auth等关联依赖)版本必须对齐,属于同一大版本系列,避免版本 mismatch 导致原生插件注册失败

2. 清理缓存重建项目

  • 执行flutter clean清理本地构建缓存
  • 删除根目录下pubspec.lock文件,执行flutter pub get重新拉取依赖
  • Android端:进入android目录执行./gradlew clean,再返回项目根目录重新运行
  • iOS端:删除ios/Pods目录和Podfile.lock文件,执行cd ios && pod install --repo-update后重新运行

3. 检查原生端配置

  • Android端:确认google-services.json放置在android/app目录下,android/app/build.gradle中已正确引入google-services插件,且minSdkVersion≥21
  • iOS端:确认GoogleService-Info.plist已通过Xcode导入到Runner项目的编译资源中(不可直接拖入文件管理器,必须通过Xcode执行添加操作)
  • 确认main函数中runApp执行前已完成Firebase初始化,代码参考:
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(const MyApp());
}

4. 修复热重载导致的注册失效

如果是在项目运行过程中新增的firebase_database依赖,仅使用热重载/热更新不会加载新的原生插件,必须完全停止当前运行的应用后冷启动,原生端才能完成插件注册。

特殊场景处理

如果上述步骤执行后仍报错,检查是否开启了代码混淆:

  • Android端在android/app/proguard-rules.pro中添加如下规则,避免firebase相关方法被裁剪:
-keep class io.flutter.plugins.firebase.** { *; }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:27:04