创建新用户时,我的 Flutter StreamBuilder 没有更新。该流基于 Firebase 身份验证

问题描述 投票:0回答:1

这是使用流构建器的主文件:

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)。用户完成身份验证过程并创建新帐户后,主屏幕不会出现。 奇怪的是,登录过程正常运行,从开始屏幕导航到电子邮件屏幕,然后到密码屏幕,最后出现主页。但是,如果是新用户,则不会出现主页。

flutter firebase firebase-authentication stream-builder
1个回答
0
投票

我没有看到您实际查看流的价值的代码。如果流为空,则您已注销。如果流有用户,则您已登录。这应该是显示登录页面或主页的选择。

© www.soinside.com 2019 - 2024. All rights reserved.