在我的应用中,我试图执行一个简单的登录/注册操作。
我有一个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);
},
);
}),
该代码可以正常工作,如下所示:
但是,当用户已经登录时,我关闭并重新打开该应用程序时,登录页面会在重定向到主页之前短暂显示。
单击热重启时会发生相同的情况:
在上图中,我已经登录,然后单击热重载,然后在重定向到主屏幕之前短暂显示登录屏幕。
当互联网关闭并且没有动画切换台时,也会发生同样的情况。
我该如何解决这个问题?
最佳答案
使用ConnectionState
:
if (snapshot.connectionState == ConnectionState.waiting) {
return Container();
}
您可以用SplashScreen / Loading Screen替换Container
关于firebase - Firebase身份验证未保存当前用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61660287/