尚未创建Firebase应用程序-调用Firebase.initializeApp()

4zcjmb1e  于 2022-12-30  发布在  其他
关注(0)|答案(6)|浏览(150)

我正在尝试运行我的应用程序,但它出现以下错误

  • [core/no-app]尚未创建Firebase应用程序“[DEFAULT]”-调用Firebase.initializeApp()*

我已经调用了firebase.initializeApp(),但错误仍然是相同的。这里是我的代码的主文件

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: (_) => AppointmentsProvider(),
      child: MaterialApp(
        title: 'Car Wash App',
        theme: ThemeData(
          primarySwatch: Colors.blue,
          visualDensity: VisualDensity.adaptivePlatformDensity,
         
        ),
        home: FutureBuilder(
          future: Firebase.initializeApp(),
          builder: (ctx, snap) =>
              snap.connectionState == ConnectionState.waiting
                  ? Center(
                      child: Text('Loading...'),
                    )
                  : StreamBuilder(
                      stream: FirebaseAuth.instance.authStateChanges(),
                      builder: (ctx, snapShot) =>
                          snapShot.hasData ? HomePage() : UserAuth(),
                    ),
        ),
        routes: {
          HomePage.routeName: (_) => HomePage(),
          HistoryPage.routeName: (_) => HistoryPage(),
          MyAppointments.routeName: (_) => MyAppointments(),
          PackagesPage.routeName: (_) => PackagesPage(),
          VehicleType.routeName: (_) => VehicleType(),
          SlotPage.routeName: (_) => SlotPage(),
          ExtraServicesPage.routeName: (_) => ExtraServicesPage(),
          SummaryPage.routeName: (_) => SummaryPage(),
          DetailedScreen.routeName: (_) => DetailedScreen(),
          PaymentMethodScreen.routeName: (_) => PaymentMethodScreen(),
        },
      ),
    );
  }
}

任何形式的帮助都是非常感谢的。谢谢

nbysray5

nbysray51#

问题是你已经在flutter项目中配置了firebase,但是在应用启动之前你还没有初始化它。

你需要异步初始化firebase sdk。这是如何去做的。
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(const MyApp());
}
bjp0bcyl

bjp0bcyl2#

当您无法在项目和应用级build.gradle文件的Android端添加所需的依赖项时,就会发生此错误

u4dcyp6a

u4dcyp6a3#

1.检查您的android/build. gradle文件。
类路径'com. google. gms:谷歌服务:4.3.14'(使用最新版本)
1.转到app/build. gradle文件。在依赖项之外添加插件
应用插件:"谷歌公司.通用汽车公司.谷歌服务"

nwnhqdif

nwnhqdif4#

您应该在main()中初始化它。
例如:

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

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

This link可能对您有帮助。
编辑:第一个链接已经存档。This is在Flutter项目中设置firebase的新方法。步骤非常相同。最后一个链接包含配置firebase插件的另一个步骤。
步骤如下:

  • 步骤1:安装所需的命令行工具
  • 步骤2:配置您的应用程序以使用Firebase
  • 步骤3:在应用中初始化Firebase
  • 步骤4:添加Firebase插件
mrfwxfqh

mrfwxfqh5#

如果以上答案没有帮助,您可以通过以下步骤解决问题:

delete the project and take backup of lib folder and pubspec.yaml file.
Create a new project with the same name
copy backed up files to the newly created project.
run flutter pub get
you are good to go

它从字面上解决了我的问题。我希望这会有帮助。

ndasle7k

ndasle7k6#

initializeApp()是一个异步函数。你应该使用“await”来确保Firebase初始化。并使用WidgetsFlutterBinding.ensureInitialized()来防止抖动错误。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(const MyApp());
}

相关问题