FLUTTER - 类型错误:如果没有“new”,则无法调用类构造函数 IndexedDBLocalPersistence

Mah*_*abu 9 firebase flutter

团队,

自从我开始遵循这个flutter 文档以来,我一直像这样初始化 Firebase ,但由于某种原因,这会在调试器中引发错误,如下所示:

类型错误:如果没有“new”,则无法调用类构造函数 IndexedDBLocalPersistence

您能帮我纠正这个问题吗?

这是颤振代码:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:pace/firebase_options.dart';
import 'package:pace/pages/auth_page.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: AuthPage(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 8

正如塔辛·埃姆雷(Tahsin Emre)在评论中建议的那样;如果更新到Flutter 3.19.0时出现此错误,可以通过升级各个Firebase软件包版本来解决。通过以下版本解决了我的问题pubspec.yaml

 dependencies:
  firebase_core: ^2.25.4
  cloud_functions: ^4.6.0
  firebase_auth: ^4.17.5
  cloud_firestore: ^4.15.5
Run Code Online (Sandbox Code Playgroud)


小智 2

我在尝试在网络上发布我的应用程序时遇到了同样的错误,经过几次尝试,我最终找到了解决方案。以下是我执行的步骤:

  1. 运行flutter channel stable以确保您当前正在使用stable通道而不是beta
  2. 运行flutter upgrade更新到最新版本的SDK,Dart SDK也会相应更新。
  3. 运行flutter --version以检查您的 Flutter SDK 版本和 Dart SDK 版本。
  4. 确保您的pubspec.yamlDart SDK 版本包含在指定的版本约束中。(例如:如果提供的输出中显示的 Dart SDK 版本flutter --version是 2.19.4,请确保您的代码sdk: '>=2.19.0 <4.0.0'至少看起来像这样)。
  5. 在我的案例场景中,使用 Flutter SDK 版本 3.7.0 和 Dart SDK 版本 2.19.0 解决了该问题,但这不是最新版本,但我相信即使使用最后一个稳定版本(Flutter SDK 3.16.5)这个问题不应该发生。

希望这能解决这个问题!