delete static method
Implementation
static Future<dynamic> delete(
{required String collection,
List<dynamic>? filters,
Function? onSuccess,
Function? onError}) async {
filters ??= [];
dynamic res = "Data deleted successfully";
dynamic collectionRef = _filteredCollectionRef(
collection: collection, filters: filters, sorts: []);
await collectionRef.get().then((QuerySnapshot querySnapshot) async {
bool errors = false;
List<String> deletedIds = [];
for (QueryDocumentSnapshot element in querySnapshot.docs) {
await FirebaseFirestore.instance
.collection(collection)
.doc(element.id)
.delete()
.then((value) => deletedIds.add(element.id))
.catchError((error) {
if (onError != null) onError(error);
errors = true;
res = error;
});
}
if (!errors && onSuccess != null) onSuccess(deletedIds);
}).catchError((error) {
if (onError != null) onError(error);
res = error;
});
return res;
}