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

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!

可行解决方案尝试

  1. 降级Firebase依赖版本
    部分开发者反馈高版本Firebase Windows SDK存在稳定性问题,可尝试将firebase_core降级到2.28.0,cloud_firestore降级到4.17.3,重新运行项目。

  2. 验证Firebase配置文件
    确认firebase_options.dart中的Windows配置项(apiKey、appId等)与Firebase控制台的Windows应用配置完全一致,避免配置错误导致的崩溃。

  3. 启用Firestore详细日志
    在Firebase初始化后添加日志配置代码,获取更详细的运行信息:

    FirebaseFirestore.instance.settings = const Settings(
      persistenceEnabled: false,
      logLevel: LogLevel.verbose,
    );
    
  4. 更新CMake版本
    针对日志中的CMake兼容性警告,将CMake更新到3.20及以上版本,消除潜在构建隐患。

  5. 排查网络拦截问题
    暂时关闭Windows防火墙或代理,测试是否是网络拦截导致应用无法连接Firebase服务而崩溃。


内容的提问来源于stack exchange,提问作者Erhan Olgunelma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:15:05