首页 > 解决方案 > 导航到另一个页面后,Flutter Firebase 不退出

问题描述

所以我有这个 Flutter 应用程序可以通过抽屉导航,身份验证服务由 Firebase 提供。我目前正在研究颤振 2.5.1。

因此,当我登录时,该应用程序将我带到我设置的主页,它允许我单击注销(在我导航到另一个屏幕之前)。但是当我导航到另一个屏幕,然后单击我的注销按钮时,它不会注销(视觉上),并且像从登录的用户那里获取数据的功能仍然有效,从用户那里返回数据。

当我按下退出按钮 D/FirebaseAuth(5447) 时,它给了我这一行:Notifying id token listeners about a sign-out event。 D/FirebaseAuth(5447):通知身份验证状态侦听器有关注销事件。

发生这种情况时,我必须重新加载,然后应用程序将我带回登录屏幕。

这是我的退出功能。

 Future cerrarSesion() {
   return FirebaseAuth.instance.signOut();
 }

这是我的主文件

return FutureBuilder(
    future: Firebase.initializeApp(),
    builder: (context, snapshot) {
      if (snapshot.connectionState != ConnectionState.done) {
        return Center(
          child: CircularProgressIndicator(),
        );
      }
      return StreamProvider<User>.value(
        initialData: null,
        value: AuthService().usuario,
        child: MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Flutter Demo',
          theme: ThemeData(
              fontFamily: regularFont,
              primaryColor: kPrimaryColor,
              elevatedButtonTheme: ElevatedButtonThemeData(
                  style: ElevatedButton.styleFrom(primary: kPrimaryColor)),
              scaffoldBackgroundColor: kBackgroundColor),
          home: BasePage(),
        ),
      );
    });

这是 BasePage() 的方法,(评估用户是否登录的方法)

 final usuario = Provider.of<User>(context);
return usuario == null ? LoginPage() : MyProfilePage();

我已经尝试过使用和不使用 null-safety,更改颤振版本但仍然无法正常工作。

我感谢有关此案例的指导,因为我不知道这可能是导致此问题的原因。

标签: firebaseflutterdartfirebase-authentication

解决方案


推荐阅读