听起来很愚蠢,但我真的无法正确地注销我的应用
routes: <String,WidgetBuilder>{
'/StartAppPage':(BuildContext context)=>new StartAppPage(),
'/LoginPage':(BuildContext context)=> new LoginPage(),
'/HomePage':(BuildContext context)=> new HomePage)
},
因此,应用程序检查使用和基于使用用户是否有用户的使用和路由。
我的主页有一个FirebaseAnimatedList,并且在我的主页上有一个注销按钮,可以执行此操作
await googleSignIn.signOut();
await FirebaseAuth.instance.signOut();
await FirebaseDatabase.instance.goOffline();
return Navigator.pushReplacementNamed(context, '/StartApp');
到主页并注销用户。
但是,当其他用户再次登录时,列表显示旧用户的数据,列表是可用的,将我的数据库弄乱
我如何正确地实现此问题,而固定性关闭或没有区别
解决方案:通过应用程序保留Firebase用户的一个实例。我建议全局变量
签名后,您可以考虑在此处进行的是在当前屏幕上检查用户是否已验证。如果用户仍在登录,请显示数据。如果没有,请导航到登录屏幕。
FirebaseAuth.instance
.idTokenChanges()
.listen((User? user) {
if (user == null) {
debugPrint('User is currently signed out!');
// TODO: navigate to Login screen?
} else {
debugPrint('User is signed in!');
// TODO: display data
}
});