Windows 10平台Flutter监听Cloud Firestore文档时应用崩溃求助
Windows 10 x64平台Flutter监听Cloud Firestore文档导致应用崩溃(无调试信息)
问题描述
在Windows 10 x64平台运行Flutter应用时,监听Cloud Firestore文档会直接导致应用崩溃,且无有效调试信息输出。
重现步骤
- 创建仅支持Windows平台的Flutter项目:
flutter create --org com.clipnavi --description 'test' --platforms windows --template app test - 关联Firebase项目:
dart pub global activate flutterfire_cli flutterfire configure --project=clipspace1 # 仅勾选Windows平台并确认 - 添加依赖:
flutter pub add firebase_core flutter pub add cloud_firestore - 使用VS Code打开项目
- 替换
main.dart代码:import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:test/firebase_options.dart'; import 'package:test/my_home_page.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( home: MyHomePage(), ); } } - 替换
my_home_page.dart代码:import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; class MyHomePage extends StatefulWidget { const MyHomePage({super.key}); @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override void initState() { super.initState(); FirebaseFirestore.instance .collection("status") .doc("eELQ6vSdSPcgM5Ha3RTyHKtBPBl1") .snapshots() .listen( (document) { print("No problem 1"); print("current data: ${document.data()}"); }, onError: (error) => print("Listen failed: $error"), ); } @override Widget build(BuildContext context) { return Center( child: Text("test"), ); } } - 确认Firebase数据库中存在对应集合与文档
- 执行
flutter run
版本信息
- Firebase Core:2.30.1
- Flutter:3.19.6
运行日志
Launching lib\main.dart on Windows in debug mode... CMake Deprecation Warning at C:/Users/olerh/Desktop/windragon/test/build/windows/x64/extracted/firebase_cpp_sdk_windows/CMakeLists.txt:17 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions. 2 √ Built build\windows\x64\runner\Debug\test.exe. Connecting to VM Service at ws://127.0.0.1:51213/pc8BnbWb_lk=/ws Lost connection to device. Exited.
Flutter环境检测结果
执行flutter doctor -v输出:
[√] Flutter (Channel stable, 3.19.6, on Microsoft Windows [Version 10.0.19045.4291], locale tr-TR) • Flutter version 3.19.6 on channel stable at C:\flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 54e66469a9 (8 days ago), 2024-04-17 13:08:03 -0700 • Engine revision c4cd48e186 • Dart version 3.3.4 • DevTools version 2.31.1 [√] Windows Version (Installed version of Windows is version 10 or higher) [√] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at C:\Users\olerh\AppData\Local\Android\sdk • Platform android-34, build-tools 34.0.0 • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java • Java version OpenJDK Runtime Environment (build 17.0.9+0--11185874) • All Android licenses accepted. [√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe [√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.9.6) • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community • Visual Studio Community 2022 version 17.9.34728.123 • Windows 10 SDK version 10.0.22621.0 [√] Android Studio (version 2023.2) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin可从插件市场安装 • Dart plugin可从插件市场安装 • Java version OpenJDK Runtime Environment (build 17.0.9+0--11185874) [√] VS Code (version 1.88.1) • VS Code at C:\Users\olerh\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.86.0 [√] Connected device (3 available) • Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.19045.4291] • Chrome (web) • chrome • web-javascript • Google Chrome 124.0.6367.78 • Edge (web) • edge • web-javascript • Microsoft Edge 124.0.2478.51 [√] Network resources • All expected network resources are available. • No issues found!
可行解决方案尝试
降级Firebase依赖版本
部分开发者反馈高版本Firebase Windows SDK存在稳定性问题,可尝试将firebase_core降级到2.28.0,cloud_firestore降级到4.17.3,重新运行项目。验证Firebase配置文件
确认firebase_options.dart中的Windows配置项(apiKey、appId等)与Firebase控制台的Windows应用配置完全一致,避免配置错误导致的崩溃。启用Firestore详细日志
在Firebase初始化后添加日志配置代码,获取更详细的运行信息:FirebaseFirestore.instance.settings = const Settings( persistenceEnabled: false, logLevel: LogLevel.verbose, );更新CMake版本
针对日志中的CMake兼容性警告,将CMake更新到3.20及以上版本,消除潜在构建隐患。排查网络拦截问题
暂时关闭Windows防火墙或代理,测试是否是网络拦截导致应用无法连接Firebase服务而崩溃。
内容的提问来源于stack exchange,提问作者Erhan Olgunelma
相关产品推荐
相关产品推荐

