Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有Firebase应用程序';[默认]';已创建-在Flatter和Firebase中调用Firebase.initializeApp()_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

没有Firebase应用程序';[默认]';已创建-在Flatter和Firebase中调用Firebase.initializeApp()

没有Firebase应用程序';[默认]';已创建-在Flatter和Firebase中调用Firebase.initializeApp(),firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在构建一个flatter应用程序,并且我集成了Firebase,但是当我点击一个按钮注册、登录或注销时,我总是会遇到这个错误。我见过其他人问过同样的问题,但似乎没有一个适合我。我使用的是颤振和。我如何解决这个问题 这是我的代码摘录 class HomeScreen extends StatefulWidget { @override _HomeScreenState createState() => _HomeScreenState(); } class _HomeScree

我正在构建一个flatter应用程序,并且我集成了Firebase,但是当我点击一个按钮注册、登录或注销时,我总是会遇到这个错误。我见过其他人问过同样的问题,但似乎没有一个适合我。我使用的是颤振和。我如何解决这个问题

这是我的代码摘录

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.red,
      body: Center(
        child: Container(
          child: RaisedButton(
            onPressed: () {
              FirebaseAuth.instance.signOut().then((value) {
                Navigator.pushReplacement(
                    context,
                    MaterialPageRoute(
                        builder: (context) =>
                            LoginScreen()));
              });
            },
            child: Text("Logout"),
          )
        )
      )
    );
  }
}
类主屏幕扩展StatefulWidget{
@凌驾
_HomeScreenState createState()=>\u HomeScreenState();
}
类_homescrenstate扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.red,
正文:中(
子:容器(
孩子:升起按钮(
已按下:(){
FirebaseAuth.instance.signOut().then((值){
导航器。更换(
上下文
材料路线(
生成器:(上下文)=>
LoginScreen());
});
},
子项:文本(“注销”),
)
)
)
);
}
}
下面是抛出的异常

══╡ 用手势捕捉异常╞═══════════════════════════════════════════════════════════════════
处理手势时引发了以下FirebaseException:
[核心/无应用程序]未创建Firebase应用程序“[默认]”-调用Firebase.initializeApp()
引发异常时,这是堆栈:
#0 MethodChannelFirebase.app(包:firebase\u core\u platform\u interface/src/method\u channel/method\u channel\u firebase.dart:118:5)
#1 Firebase.app(包:Firebase_core/src/Firebase.dart:52:41)
#2 FirebaseAuth.instance(包:firebase\u auth/src/firebase\u auth.dart:37:47)
#3_homescrenstate.build。(套餐:cosytok/screens/home.省道:20:28)
#4 InkResponseState.handleTap(包装:颤振/src/材料/InkWell.省道:992:19)
#5 _inkrestate.build。(包装:颤振/src/材料/墨水井。省道:1098:38)
#6 GestureRecognizer.invokeCallback(包:flatter/src/signatures/recognizer.dart:184:24)
#7 TapGestureRecognitor.HandletUp(软件包:颤振/src/手势/tap.dart:524:11)
#8 BaseTapgestureRecognitor.\u检查(包:颤振/src/手势/tap.dart:284:5)
#9 BaseTapGestureRecognizer.handlePrimaryPointer(包:颤振/src/手势/tap.dart:219:7)
#10 PrimaryPointerGestureRecognizer.handleEvent(包:flatter/src/signatures/recognizer.dart:477:9)
#11点路由器调度(包:颤振/src/signatures/pointer\u路由器。dart:78:12)
#12点外部。\u调度事件路由。(包装:颤振/src/signatures/pointer_router.省道:124:9)
#13_LinkedHashMapMixin.forEach(dart:collection patch/compact_hash.dart:377:8)
#14点路由器调度事件路由(包:flatter/src/signities/pointer\u路由器。dart:122:18)
#15 PointerRouter.route(包:flatter/src/signatures/pointer\u router.dart:108:7)
#16 GestureBinding.handleEvent(包:flatter/src/signatures/binding.dart:220:19)
#17 GestureBinding.dispatchEvent(包:flatter/src/signatures/binding.dart:200:22)
#18手势绑定._handlePointerEvent(包:flift/src/signatures/binding.dart:158:7)
#19手势绑定。_flushPointerEventQueue(包装:颤振/src/手势/绑定。省道:104:7)
#20手势绑定。_handlepointer数据包(包:flift/src/signatures/binding.dart:88:7)
#24_invoke1(省道:ui/hooks.dart:267:10)
#25_dispatchPointerDataPacket(dart:ui/hooks.dart:176:5)
(从dart中删除3帧:异步)
处理程序:“onTap”
识别器:
t手势识别器#f0104
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ 用手势捕捉异常═══════════════════════════════════════════════════════════════
处理手势时引发了以下FirebaseException:
[核心/无应用程序]未创建Firebase应用程序“[默认]”-调用Firebase.initializeApp()
从2020年8月17日开始 所有Firebase版本都已更新,现在您必须在使用任何Firebase产品之前调用
Firebase.initializeApp()
,例如:

首先,所有Firebase产品现在都依赖于
Firebase_core
版本(0.5.0+),因此您需要将其添加到
pubspec.yaml
文件中:

依赖项:
颤振:
sdk:颤振
firebase_核心:^0.5.0
#cloud_firestore:^0.14.0其他firebase依赖项
然后您必须调用
Firebase.initializeApp()

第一个例子 Firestore的第二个示例: 第四个例子: 调用
WidgetsFlutterBinding.ensureInitialized()后,在
main()
方法中初始化它

注意:只需调用
initializeApp()
一次
  • 添加到pubspec.yaml

    firebase_core :
    
  • 添加到main.dart

    import 'package:firebase_core/firebase_core.dart';
    
    void main() async {
       WidgetsFlutterBinding.ensureInitialized();
       await Firebase.initializeApp();
       runApp(MyApp());
    }
    

  • 如果将应用程序保留到主屏幕时仍然存在问题,则可以使用Firebase将其添加到任何
    .dart
    文件中:

    class App extends StatelessWidget {
    
      final Future<FirebaseApp> _initialization = Firebase.initializeApp();
    
      @override
      Widget build(BuildContext context) {
    

    有关更多信息,请选中。

    如果要将Firebase与颤振应用程序连接,则需要 在使用Firebase之前对其进行初始化。您可以按照下面的说明进行声明,这将帮助您解决问题:

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

    太完美了!!但是,如果您的代码中仍然出现错误并遵循,请注意,这些教程在2020年8月已经过时,并且没有
    firebase_core :
    
    import 'package:firebase_core/firebase_core.dart';
    
    void main() async {
       WidgetsFlutterBinding.ensureInitialized();
       await Firebase.initializeApp();
       runApp(MyApp());
    }
    
    class App extends StatelessWidget {
    
      final Future<FirebaseApp> _initialization = Firebase.initializeApp();
    
      @override
      Widget build(BuildContext context) {
    
    import 'package:flutter/material.dart';
    
    // Import the firebase_core plugin
    import 'package:firebase_core/firebase_core.dart';
    
    void main() {
      runApp(App());
    }
    
    class App extends StatefulWidget {
      _AppState createState() => _AppState();
    }
    
    class _AppState extends State<App> {
      // Set default `_initialized` and `_error` state to false
      bool _initialized = false;
      bool _error = false;
    
      // Define an async function to initialize FlutterFire
      void initializeFlutterFire() async {
        try {
          // Wait for Firebase to initialize and set `_initialized` state to true
          await Firebase.initializeApp();
          setState(() {
            _initialized = true;
          });
        } catch(e) {
          // Set `_error` state to true if Firebase initialization fails
          setState(() {
            _error = true;
          });
        }
      }
    
      @override
      void initState() {
        initializeFlutterFire();
        super.initState();
      }
    
      @override
      Widget build(BuildContext context) {
        // Show error message if initialization failed
        if(_error) {
          return SomethingWentWrong();
        }
    
        // Show a loader until FlutterFire is initialized
        if (!_initialized) {
          return Loading();
        }
    
        return MyAwesomeApp();
      }
    }
    
    void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        runApp(MyApp());
    }
    
    firebase_core :
    
    void main() async {
        // These two lines
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
    
        //
        runApp(MyApp());
    }
    
    void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        runApp(MyApp(),);
    }
    
    import 'package:firebase_core/firebase_core.dart';
    ...
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(MaterialApp());
    }
    
     future: Firebase.initializeApp(),
    
    void main() {
      runApp(App());
    }
    
    class App extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return FutureBuilder(
          // Initialize FlutterFire
          future: Firebase.initializeApp(),
          builder: (context, snapshot) {
           return MaterialApp(
              debugShowCheckedModeBanner: false,
              title: 'NEWSAPI.org',
              home: SplashScreen(),
           
              routes: <String, WidgetBuilder>{
                SPLASH_SCREEN: (BuildContext context) => SplashScreen(),
              },);
          },
        );
      }
    }
    
      <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-app.js"></script>
      <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-analytics.js"></script>
    
      <script>
        // Your web app's Firebase configuration
        // For Firebase JS SDK v7.20.0 and later, measurementId is optional
        var firebaseConfig = {
          apiKey: "AIz...",
          authDomain: "...",
          databaseURL: "https://<project-name>.firebaseio.com",
          projectId: "...",
          storageBucket: "<project-name>.appspot.com",
          messagingSenderId: "...",
          appId: "...",
          measurementId: "..."
        };
        firebase.initializeApp(firebaseConfig);
        firebase.analytics();
      </script>
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(MyApp());
    }
    
    void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        Firebase.initializeApp();
    
    void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
    
    dependencies:
      flutter:
        sdk: flutter
      firebase_core : ^1.2.0
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(MyApp());
    }