Hello All,
I have a question about the best practice on when to fetch some data related to the authenticated user. I have a user data collection which stores users address and some settings used through out the app. When the app loads i check for auth and then i need to get the data. I have a redirect set up in the router which will detect any changes in auth and go to the correct route.
authenticated,
unauthenticated,
}
final authController =
StateNotifierProvider<AuthProvider, AuthStatus>((ref) => AuthProvider(ref));
class AuthProvider extends StateNotifier<AuthStatus> {
AuthProvider(this.ref) : super(AuthStatus.unauthenticated);
final Ref ref;
late User _currentUser;
User get currentUser => _currentUser;
Future<AuthStatus> getUser() async {
final account = ref.read(appwriteAccountProvider);
try {
final user = await account.get();
_currentUser = user;
state = AuthStatus.authenticated;
///// Should I get the data here?? ////
return AuthStatus.authenticated;
} on AppwriteException catch (e) {
state = AuthStatus.unauthenticated;
return AuthStatus.unauthenticated;
}
}
}```
```redirect: (context, state) async {
final auth = await ref.read(authController.notifier).getUser();
final bool loggingIn = state.matchedLocation == '/signin';
final isGoingSignUp = state.matchedLocation == '/signup';
if (auth == AuthStatus.unauthenticated) {
return '/signin';
}
if (isGoingSignUp && auth == AuthStatus.authenticated) {
return '/';
}
if (loggingIn) {
return '/';
}
/// User is authenticated goto destination
return null;
}```
Sure you can get the user data there since the authProvider is for the user. It contains data about the user and you're fetching data about the user so it makes sense.
If you're fetching some other data that belongs to the user, I would do that elsewhere.
Perfect! thats what i thought. Thanks.
Recommended threads
- Apple OAuth Scopes
Hi Hi, I've configured sign in with apple and this is the response i'm getting from apple once i've signed in. I cant find anywhere I set scopes. I remember se...
- Sign In With Apple OAuth Help
Hi All! I've got a flutter & appwrite app which Im trying to use sign in with apple for. I already have sign in with google working and the function is the sam...
- Type Mismatch in AppwriteException
There is a discrepancy in the TypeScript type definitions for AppwriteException. The response property is defined as a string in the type definitions, but in pr...