Firebase 扑动火基信号

Firebase 扑动火基信号,firebase,dart,firebase-authentication,flutter,Firebase,Dart,Firebase Authentication,Flutter,我试图在用户从应用程序注销后将其返回登录页面,但天哪,一切都不起作用。我遇到了一些异常,比如坏状态:Future ready completed,或者应用程序返回到登录屏幕,但当我回击时,堆栈中仍然存在上一个屏幕 这是我的密码: _logOut() async{ await _auth.signOut().then((value){ print("***** log out"); //Navigator.pop(context); //Navigato

我试图在用户从应用程序注销后将其返回登录页面,但天哪,一切都不起作用。我遇到了一些异常,比如
坏状态:Future ready completed
,或者应用程序返回到登录屏幕,但当我回击时,堆栈中仍然存在上一个屏幕

这是我的密码:

_logOut() async{
    await _auth.signOut().then((value){
      print("***** log out");
      //Navigator.pop(context);
      //Navigator.popUntil(context, ModalRoute.withName("/login"));
      Navigator.pushReplacement(context, new MaterialPageRoute(builder: (context)=>new MyApp()));
    });
   // Navigator.popUntil(context, ModalRoute.withName("/login"));
  }

尝试使用以下代码

Navigator.pushReplacementNamed(context, routeName)

尝试使用以下代码

Navigator.pushReplacementNamed(context, routeName)

在试用了
Navigator
中的每一个函数之后,这项功能终于奏效了:

_logOut() async{
    await _auth.signOut().then((_){
      Navigator.of(context).pushNamedAndRemoveUntil("/login", ModalRoute.withName("/home"));
    });
  }

在试用了
Navigator
中的每一个函数之后,这项功能终于奏效了:

_logOut() async{
    await _auth.signOut().then((_){
      Navigator.of(context).pushNamedAndRemoveUntil("/login", ModalRoute.withName("/home"));
    });
  }

您不应该在用户注销后手动将其发送到登录页面。相反,您应该侦听用户的身份验证状态更改,并根据用户的身份验证状态选择应向用户显示的页面

请在此处查看我的答案以了解更多详细信息:

用户注销后,不应手动将其发送到登录页面。相反,您应该侦听用户的身份验证状态更改,并根据用户的身份验证状态选择应向用户显示的页面

请在此处查看我的答案以了解更多详细信息:

您应该使用Navigator.push和Navigator.pop进行此操作。您应该使用Navigator.push和Navigator.pop进行此操作。