我正在使用Firebase身份验证登出方法,但似乎无法正常工作。当我单击注销按钮时,应该注销当前用户。但是,执行此操作后,控制台不会指示firebase auth注销方法实际上正在工作,没有提示!
该应用程序具有一个系统,如果用户在线,则除非打开该应用程序,否则他们将始终在打开该应用程序后重定向到主页(将其重定向到登录页面)。并且在打开应用程序时,该应用程序始终将我重定向到主页,因此很明显,即使我按下了注销按钮,firebase auth退出方法也无法正常工作
这是我的注销方法,它在Authentication类中

FirebaseAuth _auth = FirebaseAuth();

logOut() async {
    return await _auth.signOut();
}
这是回调,当我单击注销按钮时调用logOutCurrentUser函数
Authentication authentication = Authentication();

  logOutCurrentUser(BuildContext context) {
    try {
      authentication.logOut();
      Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LoginSignupToggle(true)), (route) => false);
    }
    catch (e) {
      print(e.toString());
    }
  }
总而言之,即使我按了注销按钮,但FirebaseAuth.instance.currentUser()似乎仍然不为空,我希望注销后它为空
我已经尽力寻找一个答案,但似乎没有任何帮助

最佳答案

我的猜测是您的退出操作已中止,因为您没有等待其完成。由于您的logOutasync,因此在调用它时需要使用await:

await authentication.logOut();
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LoginSignupToggle(true)), (route) => false);

关于firebase - flutter firebaseauth signout()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62506576/

10-10 17:55