我正在使用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()
似乎仍然不为空,我希望注销后它为空我已经尽力寻找一个答案,但似乎没有任何帮助
最佳答案
我的猜测是您的退出操作已中止,因为您没有等待其完成。由于您的logOut
是async
,因此在调用它时需要使用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/