isFetchDocuments static method
Future<bool>
isFetchDocuments(
- DocumentReference cacheDocRef,
- String firestoreCacheField,
- String localCacheKey
)
Implementation
@visibleForTesting
static Future<bool> isFetchDocuments(
DocumentReference cacheDocRef,
String firestoreCacheField,
String localCacheKey,
) async {
var isFetch = true;
var prefs = await SharedPreferences.getInstance();
final dateStr = prefs.getString(localCacheKey);
if (dateStr != null) {
final cacheDate = DateTime.parse(dateStr);
final doc = await cacheDocRef.get();
final data = doc.data();
if (!doc.exists) {
throw CacheDocDoesNotExist();
} else if (data == null || !data.containsKey(firestoreCacheField)) {
throw CacheDocFieldDoesNotExist();
}
final DateTime latestDate = data[firestoreCacheField].toDate();
if (latestDate.isBefore(cacheDate)) {
isFetch = false;
}
}
return isFetch;
}