首页 > 解决方案 > 颤动的firebaseauth signout()不起作用

问题描述

我正在使用 firebase auth 注销方法,但它似乎无法正常工作。当我单击注销按钮时,它应该注销当前用户。但是,这样做之后,控制台并没有表明 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()即使在我点击注销按钮后它似乎仍然不为空,我希望它在注销后为空

我已经尝试尽可能多地寻找答案,但似乎没有什么对我有用

标签: firebaseflutterdartfirebase-authentication

解决方案


我的猜测是您的注销被中止,因为您没有等待它完成。因为你logOut是你在调用它时async需要使用:await

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

推荐阅读