首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将If语句添加到main.dart文件

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

Stack Overflow用户
提问于 2021-01-14 22:06:02
回答 2查看 126关注 0票数 1

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

这是当前的主文件

代码语言:javascript
运行
复制
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();
      }
    },
  ),
  ));
}

我想添加一个firebase auth函数,而不是streambuilder

代码语言:javascript
运行
复制
if(FirebaseAuth.instance.currentUser != null){
  Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => Home();));
}
else{
  Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => Login();));
}

请帮帮我!!

EN

回答 2

Stack Overflow用户

发布于 2021-01-14 22:14:47

我建议你在MaterialApp中使用'routes‘,我可以在这里给你一个例子:

initialRoute: await AppRoute.getInitialRoute()

然后打开AppRoute并在那里定义

代码语言:javascript
运行
复制
static Future<String> getInitialRoute() {

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

Stack Overflow用户

发布于 2021-01-14 22:15:46

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

代码语言:javascript
运行
复制
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  bool loggedIn = FirebaseAuth.instance.currentUser !=null;
  runApp(MaterialApp(
    title: 'TaakStore',
    home: loggedIn ? Home(): Login(),
  ),
 );
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65720501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档