这是使用流构建器的主文件:
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Twitter Clone',
theme: ThemeData(
useMaterial3: false,
),
themeMode: ThemeMode.system,
home: StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (ctx, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const loading();
}
if (snapshot.hasData) {
return const Homepage();
}
return const startingscreen();
},
),
);
}
}
当用户未经过身份验证时,应用程序将导航到起始屏幕,然后进入电子邮件屏幕,然后是电子邮件验证屏幕、密码屏幕、用户名屏幕等(通过 Navigator.Push)。用户完成身份验证过程并创建新帐户后,主屏幕不会出现。 奇怪的是,登录过程正常运行,从开始屏幕导航到电子邮件屏幕,然后到密码屏幕,最后出现主页。但是,如果是新用户,则不会出现主页。
我没有看到您实际查看流的价值的代码。如果流为空,则您已注销。如果流有用户,则您已登录。这应该是显示登录页面或主页的选择。