我的应用程序中有两个页面,分别在登录过程后显示Home()和Edit()。可以通过Home()页面底部的导航栏访问Edit()页面。在编辑页面中,用户可以在编辑后按“确定”。当用户按下“确定”时,屏幕将切换到Home()页面,其中显示所做的更改。完成此过程后,Home()页面中的signOut()按钮将不起作用。如果用户在登录过程后未在Edit()页面中按“ OK”,则signOut()按钮可以正常工作。我该如何解决?
下面显示“ OK”的onPressed(){}。
onPressed() {
// also the form data saving to database.
Navigator.popAndPushNamed(context, HomeScreen.id);
}
您应该如下所示:
onPressed: () {
FirebaseAuth auth = FirebaseAuth.instance;
auth.signOut().then((res) {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => SignIn()),
);
});
},
onPressed
按钮的signOut
,用户退出Firebase,因此将没有当前用户,并且您将导航到另一个页面。