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();
}
},
);
}
}
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 ();
}
},
);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With