0

我是初学者,所以这个问题对你们专家来说可能听起来微不足道,但我无法理解这里的概念。请帮助在Flutter Fire 文档中的 CollectionReference 和 DocumentReference 段中

  Movie({required this.title, required this.genre});

  Movie.fromJson(Map<String, Object?> json) // Here Movie.fromJson is created
    : this(
        title: json['title']! as String,
        genre: json['genre']! as String,
      );

  final String title;
  final String genre;

// What if i create fromJson like this. would it be valid?
// and upper function is just a simplified version of this
Object fromJson (Map<String, Object?> json) {
    return (
        title: json['title']! as String,
        genre: json['genre']! as String,);

  }

  Map<String, Object?> toJson() { // Here toJson is created differently
    return {
      'title': title,
      'genre': genre,
    };
  }

}

//Further they are used like this

final moviesRef = FirebaseFirestore.instance.collection('movies').withConverter<Movie>(
      fromFirestore: (snapshot, _) => Movie.fromJson(snapshot.data()!),
      toFirestore: (movie, _) => movie.toJson(),
    );

为什么 fromJson 和 toJson 的创建方式不同

4

1 回答 1

0

toJson转换Movie为 a Map(存储在 firestore 中),同时fromJson将 the 转换Map为 the Movie(以便在颤振中使用)。

withConverter 通过自动转换 firebase 来帮助保持类型Map安全Movie

于 2021-09-18T06:13:17.127 回答