
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
- My collection is not updating after csv ...
- How do I format an array in a CSV file t...
I want to import a CSV file to create a document on it on the AppWrite website. I have an attribute "name" of type String and "ingredients" which is of type St...
- my database attribute stuck in processin...
when i created attributes in collection 3 of those attributes become "processing", and they are not updating, the worst thing is that i cant even delete them s...
