synchronizeDocuments static method
dynamic
synchronizeDocuments({
- required String collectionPath,
- required PumaCondition primaryCondition,
- void onCompleted()?,
- List<
PumaCondition> ? conditions,
Implementation
static synchronizeDocuments({
required String collectionPath,
required PumaCondition primaryCondition,
void Function(List<String>)? onCompleted,
List<PumaCondition>? conditions,
}) {
if (FirebaseAuth.instance.currentUser == null) return;
bool foundDocuments = false;
CollectionReference<Map<String, dynamic>> collection =
FirebaseFirestore.instance.collection(collectionPath);
Query<Map<String, dynamic>> query =
queryCollection(collection, primaryCondition);
if (conditions != null) {
query = queryConditions(query, conditions);
}
var snapshot = query.get();
snapshot.catchError((e) {
debugPrint("Something went wrong");
debugPrint(e.toString());
});
snapshot.then((value) {
List<String> documents = [];
foundDocuments = true;
for (var doc in value.docs) {
documents.add(jsonEncode(doc.data()));
}
if (onCompleted != null) {
onCompleted(documents);
}
});
snapshot.whenComplete(() {
if (!foundDocuments) {
debugPrint("No documents found in Firestore");
if (onCompleted != null) {
onCompleted([]);
}
}
});
}