'stream builder not working after navigation
i use a stream builder to listen to auth changes, so when i log in it works and takes me to my home screen and likewise when i logout from my home screen it takes me to my login screen. but as soon as i navigate to any other screen it doesn't function anymore, even if i go back to my home screen before signing out. please help, i would like to be able to signout from any screen and have it take me to my login screen automatically
MY MAIN.DART
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: _getLandingPage(),
);
}
}
Widget _getLandingPage() {
return StreamBuilder<User>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (BuildContext context, snapshot) {
if (snapshot.hasData) {
return Home();
} else {
return Login();
}
},
);
}
how i navigate to my other screen
IconButton(
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (builder) {
return Completed();
}));
},
iconSize: 30,
color: Colors.white,
icon: Icon(Icons.check_box)),
),
how i signout
void onSelected(int value) {
switch (value) {
case 0:
Navigator.pushAndRemoveUntil(context,
MaterialPageRoute(builder: (builder) {
return MyApp();
}), (Route<dynamic> route) => false);
break;
case 1:
FirebaseAuth.instance.signOut();
break;
case 2:
followDeveloper();
break;
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
