getUsers method
Implementation
Future<List<UserModel>> getUsers({
int limit = 50,
DocumentSnapshot? startAt,
}) async {
try {
final usersRef = _db.collection('Users');
var query = usersRef.limit(limit);
if (startAt is DocumentSnapshot) {
query = query.startAtDocument(startAt);
}
final snapshot = await query.get();
if (snapshot.docs.isEmpty) {
return [];
}
final toParse = snapshot.docs.map((e) async {
final user = await UserModel.fromDocumentSnapshot(e);
return user;
}).toList();
final parsed = await Future.wait(toParse);
return parsed;
} catch (err) {
if (err is FirebaseException) {
throw UsersDataServiceException.fromRdevException(
err.toRdevException());
}
throw UsersDataServiceException(message: err.toString());
}
}