繁体   English   中英

如何将 If 语句添加到 main.dart 文件

[英]How Add a If statement to main.dart file

我想添加一个 if 语句 function,如果当前用户= null,它应该导航到 Home() 而不是然后它应该导航到 Login()。

这是当前的主文件

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MaterialApp(
    title: 'TaakStore',
    home: StreamBuilder(
    stream: FirebaseAuth.instance.authStateChanges(),
    builder: (BuildContext context, AsyncSnapshot<User> snapshot) {
      if (snapshot.hasData) {
        print(snapshot);
        return Home();
      } else {
        return Login();
      }
    },
  ),
  ));
}

而不是 streambuilder 我想添加一个 firebase auth function

这个

if(FirebaseAuth.instance.currentUser != null){
  Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => Home();));
}
else{
  Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => Login();));
}

请帮我!!

您可以像这样使用三元运算:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  bool loggedIn = FirebaseAuth.instance.currentUser !=null;
  runApp(MaterialApp(
    title: 'TaakStore',
    home: loggedIn ? Home(): Login(),
  ),
 );
}

我建议您在 MaterialApp 中使用“路线”,我可以在这里给您举个例子:

initialRoute: await AppRoute.getInitialRoute()

并打开 AppRoute 并在那里定义

static Future<String> getInitialRoute() {

    if (FirebaseAuth.instance.currentUser != null) {
      return '/home-page';
    } else {
      return '/login-page';
    }   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM