Firebase身份验证未保存当前用户

时间:2020-05-07 14:26:11

标签: firebase flutter dart firebase-authentication stream-builder

在我的应用中,我正在尝试执行简单的登录/注册操作。

我有一个StreamBuilder,如果没有用户,它会返回登录屏幕,如果有用户登录,则会返回主屏幕:

StreamBuilder(
          stream: FirebaseAuth.instance.onAuthStateChanged,
          builder: (BuildContext context, AsyncSnapshot snapshot) {
            Widget widget;
            switch (snapshot.data) {
              case (null):
                widget = SignIn();
                break;
              default:
                widget = Home();
            }

            return AnimatedSwitcher(
          child: widget,
          duration: Duration(seconds: 1),
          transitionBuilder: (Widget child, Animation<double> animation) {
            return ScaleTransition(child: child, scale: animation);
          },
        );
          }),

该代码可以正常工作,如下所示:

Simple Login

但是当用户已经登录后,我关闭并重新打开该应用程序时,登录页面会短暂显示,然后重定向到主页。

当我单击热重启时,也会发生同样的情况:

Hot Restart

在上图中,我已经登录,然后单击热重载,然后在重定向到主屏幕之前短暂显示登录屏幕。

关闭互联网并且没有动画切换台时也会发生同样的情况。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

使用ConnectionState

if (snapshot.connectionState == ConnectionState.waiting) {
 return Container();
}

您可以用SplashScreen / Loading Screen替换Container