Firebase 退出颤振应用程序不会';不要返回登录页面
我正在使用firebase对我的应用程序中的用户进行身份验证,当我直接从登录页面之后的主页注销时,登录/注册和注销可以正常工作,但当我从主页路由的设置页面注销时,则无法正常工作 它已在firebase上注销,但该页面不会立即返回到调用signout的登录页面,除非我按下appbar上的后退按钮 这是我的注销功能:Firebase 退出颤振应用程序不会';不要返回登录页面,firebase,authentication,flutter,firebase-authentication,Firebase,Authentication,Flutter,Firebase Authentication,我正在使用firebase对我的应用程序中的用户进行身份验证,当我直接从登录页面之后的主页注销时,登录/注册和注销可以正常工作,但当我从主页路由的设置页面注销时,则无法正常工作 它已在firebase上注销,但该页面不会立即返回到调用signout的登录页面,除非我按下appbar上的后退按钮 这是我的注销功能: abstract class BaseAuth { Future<void> signOut(); } Future<void> signOut() as
abstract class BaseAuth {
Future<void> signOut();
}
Future<void> signOut() async {
return _firebaseAuth.signOut();
}
final BaseAuth auth;
final VoidCallback onSignedOut;
_signOut() async {
try {
await widget.auth.signOut();
widget.onSignedOut();
} catch (e) {
print(e);
}
}
因此,如果authenticationon状态未登录,它应该返回到LoginSignUpPage
我不知道为什么会发生这种延迟。
任何帮助都将不胜感激 So添加
Navigator.popintil(上下文,ModalRoute.withName(“/”)
作为\u signOut()中的最后一行解决了问题
它只需弹出堆叠在堆栈中第一个屏幕顶部的所有屏幕。这对我很有用
of(context,rootNavigator:true).pop(context) 尝试使用PushReplacement,即使我在遇到问题时使用它,但我没有时间修复它,是的,它也可以用作问题的修复
Navigator.of(context).pushReplacement or pushNamedReplacement(Screen to navigate);
我很难理解当您从设置页面注销时显示的页面。进入AuthStatus.LOGGED_in时,进入应用程序时显示的第一个页面是LoginSignUpPage,当用户登录时,会将用户定向到主页。在主页菜单上,有一个设置图标,该图标指向设置页面。现在,主页上的注销按钮在注销时会重定向回LoginSignUpPage,但设置页面上的注销按钮不会重定向回LoginSignUpPage,除非我按下后退按钮。请尝试添加Navigator.popintil(context,ModalRoute.withName(“/”)
作为\u signOut()中的最后一行。这将弹出堆叠在堆栈中第一个屏幕顶部的所有屏幕。谢谢,这非常有效!
Navigator.of(context).pushReplacement or pushNamedReplacement(Screen to navigate);