fromJson method
Implementation
@override
DateTime? fromJson(dynamic data) {
if (data == null) return null;
try {
// Handle Firestore Timestamp
if (data is Timestamp) {
return data.toDate();
}
// Handle Cloud Functions Map format
if (data is Map) {
final seconds = data['_seconds'] ?? data['seconds'];
final nanoseconds = data['_nanoseconds'] ?? data['nanoseconds'];
if (seconds != null) {
return Timestamp(
seconds as int,
(nanoseconds as int?) ?? 0,
).toDate();
}
}
// Handle milliseconds
if (data is int) {
return DateTime.fromMillisecondsSinceEpoch(data);
}
// Handle ISO string
if (data is String) {
return DateTime.tryParse(data);
}
} catch (e) {
// ignore: avoid_print
print('Error parsing timestamp: $e');
}
return null;
}