convertToLocalValue function
dynamic
convertToLocalValue(
- dynamic value
Implementation
dynamic convertToLocalValue(dynamic value) {
if (value is Map) {
if (value.containsKey('mapValue')) {
final out = value['mapValue']['fields'] as Map<String, dynamic>?;
if (out == null) {
return null;
}
return convertToLocalJson(out);
} else if (value.containsKey('arrayValue')) {
final out = (value['arrayValue']['values']) as Iterable<dynamic>?;
return out?.map((dynamic e) => convertToLocalValue(e)).toList();
} else if (value.containsKey('stringValue')) {
return value['stringValue'];
} else if (value.containsKey('integerValue')) {
final out = value['integerValue'] as String?;
if (out == null) {
return null;
}
return int.tryParse(out);
} else if (value.containsKey('doubleValue')) {
final out = value['doubleValue'] as String?;
if (out == null) {
return null;
}
return double.tryParse(out);
} else if (value.containsKey('booleanValue')) {
return value['booleanValue'] == true;
} else if (value.containsKey('timestampValue')) {
final out = value['timestampValue'] as String?;
if (out == null) {
return null;
}
return DateTime.tryParse(out);
} else if (value.containsKey('nullValue')) {
return null;
}
}
throw UnsupportedError('Unsupported value: $value');
}