您不能对 Firestore 使用序列化程序。您需要从构建的值对象手动创建地图以上传它。一旦你想从 Firebase 获取,你需要从地图创建一个构建对象。最近没有这样做,但它会是这样的:
static Place _fromFirestore(Map<dynamic, dynamic> placeMap) {
final List<dynamic> methods = placeMap['methods'] ?? [];
final place = Place((b) => b
..id = placeMap['id']
..name = placeMap['name']
..address = placeMap['address']
..methods.addAll(List<String>.from(methods.cast<String>()));
return place;
}