I'm using Riverpod in my app for state management. Here is my code.
Main method-
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeProvider.themeOf(themeContext).data,
home: route.Route(),
);
);
class Route extends ConsumerWidget {
@override
Widget build(BuildContext context, ScopedReader watch) {
AsyncValue<User> auth = watch(authStateChangesProvider);
return auth.when(
data: (user) {
if (user != null && user.uid != null) {
return HomePage();
} else {
return LoginPage();
}
},
loading: () => CircularProgressIndicator(),
error: (e, o) => Text('error'),
);
}
}
AuthStateChanges-
final firebaseAuthProvider =
Provider<FirebaseAuth>((ref) => FirebaseAuth.instance);
final StreamProvider<User> authStateChangesProvider = StreamProvider<User>(
(ref) => ref.watch(firebaseAuthProvider).authStateChanges());
I want to show the users an onboarding screen if it's their first time logging in the app. But I don't know how to implement that since i cant use an async
method in auth.when()
. How do I do that?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…