signOut()在导航到屏幕后不起作用。但是当我不导航时它起作用。如何解决此问题?

问题描述 投票:0回答:1

我的应用程序中有两个页面,分别在登录过程后显示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);
}
firebase flutter firebase-authentication flutter-layout
1个回答
0
投票

您应该如下所示:

        onPressed: () {
        FirebaseAuth auth = FirebaseAuth.instance;
        auth.signOut().then((res) {
            Navigator.pushReplacement(
            context,
            MaterialPageRoute(builder: (context) => SignIn()),
            );
        });
        },

onPressed按钮的signOut,用户退出Firebase,因此将没有当前用户,并且您将导航到另一个页面。

© www.soinside.com 2019 - 2024. All rights reserved.