Firebase 退出颤振应用程序不会';不要返回登录页面

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

我正在使用firebase对我的应用程序中的用户进行身份验证,当我直接从登录页面之后的主页注销时,登录/注册和注销可以正常工作,但当我从主页路由的设置页面注销时,则无法正常工作

它已在firebase上注销,但该页面不会立即返回到调用signout的登录页面,除非我按下appbar上的后退按钮

这是我的注销功能:

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);