Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase + Flutter: login using StreamBuilder()

I have a "wrapper" widget that if the user is logged in shows the homepage and if is not logged in the loginpage, using StreamBuilder.

I got a problem because i have to restart the app to make the page update from login to homepage when the user logs in.

Here's the code:

class Wrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: FirebaseAuth.instance.authStateChanges(),
      builder: (context, snapshot) {
        if (snapshot.connectionState != ConnectionState.active) {
          return Center(child: CircularProgressIndicator());
        }
        final user = snapshot.data;
        if (user != null &&
            FirebaseAuth.instance.currentUser.emailVerified == true) {
          print("user is logged in");
          print(user);
          return HomeScreen();
        } else {
          print("user is not logged in");
          return LoginScreen();
        }
      },
    );
  }
}

1 Answers

Update :-

This is your full code,

class Wrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: FirebaseAuth.instance.authStateChanges(),
      builder: (context, snapshot) {
        if (snapshot.connectionState != ConnectionState.active) {
          return Center(child: CircularProgressIndicator());
        }
        final user = snapshot.data;
        if (user != null &&
            FirebaseAuth.instance.currentUser.emailVerified == true) {
          print("user is logged in");
          print(user);
Navigator.push(context,MaterialPageRoute(context,builder:(context)=> HomeScreen();
))),
          return container()
        } else {
          print("user is not logged in");
Navigator.push(context,MaterialPageRoute(context,builder:(context)=> LoginScreen();
))),
          return container ();
        }
      },
    );
  }
}
like image 114
Madhavam Avatar answered Jun 19 '26 19:06

Madhavam