I am new to dart, and I came across the following code. This apparently updates the document in the firebase. Can someone explain in detail, what it really does?
abstract class FirestoreDocumentUpdater {
static Future<void> update(
// ignore: use_function_type_syntax_for_parameters
DocumentReference<Map<String, dynamic>> documentRef,
Map<String, dynamic> map) {
debugPrint('update function called');
return documentRef.update(
Map.fromEntries(
map.entries.map(
(e) {
return MapEntry(
e.key,
switch (e.value) {
DateTime t => toJsonDateTime(t),
Duration d => toJsonDuration(d),
Enum t => t.name,
_ => e.value,
});
},
),
),
);
}
}
Timestamp? toJsonDateTime(DateTime? dateTime) {
if (dateTime == null) return null;
return Timestamp.fromDate(dateTime);
}
int toJsonDuration(Duration duration) {
return duration.inMicroseconds;
}
New contributor
M99Coder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.