fetchItemsByServerWrittenTimeRange method
Fetch items from the remote server within the specified server-written timestamp range.
Implementation
@override
Future<List<T>> fetchItemsByServerWrittenTimeRange({
required DateTime to,
DateTime? from,
}) async {
try {
Query<T> query =
await _collectionWithConverter; // Start with the base collection query
// Apply the 'to' filter always
query = query.where(
'server_time_synced_at',
isLessThanOrEqualTo: to,
);
// Apply the 'from' filter only if it's not null
if (from != null) {
query = query.where(
'server_time_synced_at',
isGreaterThanOrEqualTo: from,
);
}
final querySnapshot = await query.get();
return querySnapshot.docs.map((doc) => doc.data()).toList();
} catch (e) {
if (kDebugMode) {
_logger.e('Error fetching items by server written time range: $e');
}
rethrow;
}
}