抛出错误“[core/no-app] 未创建 Firebase 应用程序 '[DEFAULT]' - 调用 Firebase.initializeApp()”

nam*_*e__ 0 dart firebase flutter google-cloud-firestore

我有一个返回主页的主文件,并且在主页上我尝试调用一个新文件(test.dart)。现在的问题是这个test.dart文件抛出了一些我无法解决的错误,因为我对 flutter 和 Firebase Firestore 完全陌生。这是代码test.dart

import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
// import 'package:vola1/colors.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';

class test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        // floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        body: StreamBuilder(
      stream: FirebaseFirestore.instance
          .collection('countries')
          .doc('nW9L4LGpn2MZVyiTyUII')
          .snapshots(),
      builder: (context, snapshot) {
        if (!snapshot.hasData) return Text('Loading data.. please wait..');
        return Container();
      },
    ));
  }
}


Run Code Online (Sandbox Code Playgroud)

这是它抛出的错误

======== Exception caught by widgets library =======================================================
The following FirebaseException was thrown building test(dirty):
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

The relevant error-causing widget was: 
  test file:///D:/flutter%20course/vola1/lib/home.dart:88:49
When the exception was thrown, this was the stack: 
#0      MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:122:5)
#1      Firebase.app (package:firebase_core/src/firebase.dart:54:41)
#2      FirebaseFirestore.instance (package:cloud_firestore/src/firestore.dart:40:21)
#3      test.build (package:vola1/test.dart:15:33)
#4      StatelessElement.build (package:flutter/src/widgets/framework.dart:4569:28)
...
====================================================================================================

Run Code Online (Sandbox Code Playgroud)

主文件

import 'package:flutter/material.dart';
import 'home.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Home(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

按钮调用 test.dart 的主页

ElevatedButton(
                    onPressed: () => {
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) => test(),
                        ),
                      ),
                    },
Run Code Online (Sandbox Code Playgroud)

use*_*595 5

在使用Firebase之前,你必须调用Firebase.initializeApp(); 你可以这样做:

 void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

15261 次

最近记录:

3 年,10 月 前