Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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
Android Flatter中runApp之前Firebase初始化App需要很多时间_Android_Firebase_Flutter - Fatal编程技术网

Android Flatter中runApp之前Firebase初始化App需要很多时间

Android Flatter中runApp之前Firebase初始化App需要很多时间,android,firebase,flutter,Android,Firebase,Flutter,我的问题是,如果执行以下代码,如何显示启动屏幕或加载屏幕: void main() async{ WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); } 您只需使用Future Builder即可 void main() async{ WidgetsFlutterBinding.ensureInitialized(); //remove thi

我的问题是,如果执行以下代码,如何显示启动屏幕或加载屏幕:

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

您只需使用Future Builder即可

void main() async{
  WidgetsFlutterBinding.ensureInitialized();
  //remove this line from your code
  //await Firebase.initializeApp();
  runApp(MyApp());
}
这是MyApp()的代码

类MyApp扩展了无状态小部件{
最终未来_initialization=Firebase.initializeApp();
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
家:未来建设者(
未来:_初始化,
生成器:(上下文,快照){
if(snapshot.connectionState==connectionState.done){
返回LoginWrapper();
}
返回屏幕();
},
),
);
}
}

它在加载firebase应用程序时显示您的SplashScreen;)

你的标题说,
initializeApp
花费了很多时间,这是不应该的。你能告诉我需要多长时间吗?@FrankvanPuffelen说。。然后,如果你想显示闪屏,这里有很多Q&A等等。这是其中之一:
class MyApp extends StatelessWidget {
  final Future<FirebaseApp> _initialization = Firebase.initializeApp();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: FutureBuilder(
        future: _initialization,
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done) {
            return LoginWrapper();
          }
          return SplashScreen();
        },
      ),
    );
  }
}