firebase - 颤动的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()
即使在我点击注销按钮后它似乎仍然不为空,我希望它在注销后为空
我已经尝试尽可能多地寻找答案,但似乎没有什么对我有用
解决方案
我的猜测是您的注销被中止,因为您没有等待它完成。因为你logOut
是你在调用它时async
需要使用:await
await authentication.logOut();
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LoginSignupToggle(true)), (route) => false);
推荐阅读
- javascript - 变量“$file”的值无效 {}; 上传值无效
- ios - 用于合成红色、绿色和蓝色颜色通道的 CIFilter
- c# - 如何在vs2017内置的代码中使用vs2013内置的dll库?
- c# - $ - 字符串插值实时编译 - 从文件
- python - 为什么“while len(x)”给出正确答案而“while x”给出 Time Limit Exceeded?
- node.js - 在节点 js 中使用 Gstreamer?
- pthreads - musl中是否有任何功能,例如glibc中的“回溯”
- r - 在 R 中为 tbl_summary 创建一个函数
- java - JAVA-ANDROID STUDIO - 我应该使用什么参数来运行这个方法?
- flutter - 来自firebase firestore的颤振查询(where + order by)返回错误