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

VSCode中Flutter/Firebase项目无法运行及配置报错求助

Flutter/Firebase项目在VSCode中无法运行,启动时程序无响应

我在VSCode中运行Flutter/Firebase项目时遇到问题,每次尝试启动程序都会停止响应。

项目初始化时执行的命令

flutter pub add firebase_core
flutter pub add firebase_auth
flutter pub add cloud_firestore
flutter pub add provider
flutter pub add firebase_ui_auth
dart pub global activate flutterfire_cli
flutterfire configure

出现问题后尝试的修复操作

flutter clean .
flutter pub cache repair

项目main.dart代码

import 'package:bos_proje/firebase_options.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart'; 
import 'package:flutter/material.dart';  
 
String str = "";

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); 
  await Firebase.initializeApp( 
  options: DefaultFirebaseOptions.currentPlatform,
); 
var  db = FirebaseFirestore.instance;
// 创建一个包含姓名和出生年份的用户数据
final user = <String, dynamic>{
  "first": "Ada",
  "last": "Lovelace",
  "born": 1815
};

// 添加新文档并获取自动生成的ID
db.collection("users").add(user).then((DocumentReference doc) =>
    str= 'Document ID: ${doc.id}');
  runApp(const MainApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text(str),
        ),
      ),
    );
  }
}

后续错误详情

重新安装Flutter后的编译错误

调试控制台输出:

Launching lib\main.dart on Chrome in debug mode...
/C:/Users/gacwi/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_web-2.11.4/lib/src/firebase_core_web.dart:152:43: Error: The getter 'winydowVar' isn't defined for the class 'FirebaseCoreWeb'.
 - 'FirebaseCoreWeb' is from 'package:firebase_core_web/firebase_core_web.dart' ('/C:/Users/gacwi/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_web-2.11.4/lib/firebase_core_web.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'winydowVar'.
        globalContext.delete('ff_trigger_$winydowVar'.toJS);
                                          ^^^^^^^^^^
Failed to compile application.

更换Firebase项目后的配置错误

终端输出:

PS D:\flutter_projeler\denemeler\bos_proje> flutterfire configure
i Found 3 Firebase projects.
✔ Select a Firebase project to configure your Flutter application with · fir-test-75a53 (FireBaseTest)
✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos, web
i Firebase android app com.example.bos_proje is not registered on Firebase project fir-test-75a53.
i Registered a new Firebase android app on Firebase project fir-test-75a53.
FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase apps:create android bos_proje (android) --package-name=com.example.bos_proje --json --project=fir-test-75a53
ERROR: Failed to create Android app for project fir-test-75a53. See firebase-debug.log for more info.

解决方案

1. 修复firebase_core_web拼写错误问题

这个错误是因为firebase_core_web包代码里出现了拼写错误(winydowVar应为windowVar),可以通过两种方式解决:

  • 直接修改本地缓存文件:找到路径C:/Users/gacwi/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_web-2.11.4/lib/src/firebase_core_web.dart,将第152行的winydowVar改为windowVar。
  • 升级firebase_core包到最新版本,新版本已修复该错误:
    flutter pub upgrade firebase_core
    

2. 解决Firebase项目配置错误

针对flutterfire configure创建Android应用失败的问题:

  • 更新Firebase CLI到最新版本:
    npm install -g firebase-tools
    
  • 手动在Firebase控制台创建Android应用,下载google-services.json文件并放到项目的android/app目录下,再重新运行flutterfire configure选择已创建的应用。

3. 代码优化建议

原代码中str变量在异步回调中赋值,而runApp同步执行会导致UI显示为空,建议改用FutureBuilder处理异步操作:

import 'package:bos_proje/firebase_options.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart'; 
import 'package:flutter/material.dart';  

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); 
  await Firebase.initializeApp( 
    options: DefaultFirebaseOptions.currentPlatform,
  ); 
  runApp(const MainApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: FutureBuilder<String>(
            future: _addUser(),
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.waiting) {
                return const CircularProgressIndicator();
              } else if (snapshot.hasError) {
                return Text('添加用户失败: ${snapshot.error}');
              } else {
                return Text(snapshot.data ?? '无文档ID');
              }
            },
          ),
        ),
      ),
    );
  }

  Future<String> _addUser() async {
    final db = FirebaseFirestore.instance;
    final user = <String, dynamic>{
      "first": "Ada",
      "last": "Lovelace",
      "born": 1815
    };
    final doc = await db.collection("users").add(user);
    return 'Document ID: ${doc.id}';
  }
}

内容的提问来源于stack exchange,提问作者Güven Acar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:17:03