getAll<T> method
Future<Result<List<T>>>
getAll<
T>({ - dynamic field,
- dynamic isEqualTo,
- dynamic isLessThan,
- dynamic isLessThanOrEqualTo,
- dynamic isGreaterThan,
- dynamic isGreaterThanOrEqualTo,
- dynamic arrayContains,
- List? arrayContainsAny,
- List? whereIn,
- bool? isNull,
- int limit = 10,
})
Implementation
Future<Result<List<T>>> getAll<T>({
dynamic field,
dynamic isEqualTo,
dynamic isLessThan,
dynamic isLessThanOrEqualTo,
dynamic isGreaterThan,
dynamic isGreaterThanOrEqualTo,
dynamic arrayContains,
List<dynamic>? arrayContainsAny,
List<dynamic>? whereIn,
bool? isNull,
int limit = 10,
// Query? query,
// DocumentSnapshot? startAfterDoc,
}) async {
final localDb = await localRepo();
try {
if (hasRemotePriority) {
final result = await remoteRepo!.getAll<T>(
field: field,
isEqualTo: isEqualTo,
isLessThan: isLessThan,
isLessThanOrEqualTo: isLessThanOrEqualTo,
isGreaterThan: isGreaterThan,
isGreaterThanOrEqualTo: isGreaterThanOrEqualTo,
arrayContains: arrayContains,
arrayContainsAny: arrayContainsAny,
whereIn: whereIn,
isNull: isNull,
limit: limit,
);
if (result.isSuccessfulObj) {
return Result.success(obj: result.obj!.whereType<T>().toList());
}
}
if (includeLocalTransactions) {
try {
final result = await localDb!.getAll<T>();
if (result.hasFailed) {
Logger.error(
StackTrace.current,
'$tableName: A failure occurred when locally getting all objects.\n${result.log?.error}',
);
} else if (result.isSuccessfulObj) {
return Result.success(obj: result.obj!.whereType<T>().toList());
}
} catch (e, st) {
Logger.error(st, e.toString());
}
}
if (includeRemoteTransactions) {
final result = await remoteRepo!.getAll<T>(
field: field,
isEqualTo: isEqualTo,
isLessThan: isLessThan,
isLessThanOrEqualTo: isLessThanOrEqualTo,
isGreaterThan: isGreaterThan,
isGreaterThanOrEqualTo: isGreaterThanOrEqualTo,
arrayContains: arrayContains,
arrayContainsAny: arrayContainsAny,
whereIn: whereIn,
isNull: isNull,
limit: limit,
// query: query,
// startAfterDoc: startAfterDoc,
);
if (result.isSuccessfulObj) {
return Result.success(obj: result.obj!.whereType<T>().toList());
} else {
Logger.error(
StackTrace.current,
'$tableName: A failure occurred when remotely getting all objects.\n${result.log?.error}',
);
}
}
return Result.error(
log: Log(msg: 'An error occurred when querying a list'),
);
} catch (e, st) {
return _getErrorLog(msg: e.toString(), stacktrace: st);
} finally {
// await localDb?.close();
}
}