firebase 我应该使用这个toJson函数做什么?

6tqwzwtp  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(121)

我从网上的某个地方复制了这段代码,上面说使用model作为数据接口是很好的。到目前为止,我已经使用了很多fromJson函数,但从来没有使用toJson函数,因为无论何时需要将数据写入Firebase,内置函数都允许我立即写入JSON。我应该在什么时候使用这个toJson?我应该如何使用它?

ModelFriend.fromJson(Map<dynamic, dynamic>? json): //Transform JSON into model
        createDate = json?['createDate'] as String,
        modifiedDate = json?['modifiedDate'] as String,
        stat = json?['stat'] as String,
        uid = json?['uid'] as String,
        username = json?['username'] as String;

  Map<dynamic, dynamic> toJson() => <dynamic, dynamic>{ //Transforms model into JSON
    'createDate': createDate,
    'modifiedDate': modifiedDate,
    'stat': stat,
    'uid': uid,
    'username': username,
  };
rsaldnfx

rsaldnfx1#

当我们想在Flutter中添加文档到Cloud Firestore时,我们可以使用以下代码:

await firestore.doc(documentPath).set(data);

data变量的类型为Map<String, dynamic>,因此您需要将模型转换为如下所示的Map:

final Model model = Model(
  name,
  email,
);

await firestore.doc(documentPath).set(model.toJson());

此外,如果使用下面的代码,可能会输入错误的字段并出现错误:

await firestore.doc(documentPath).set({
  "naem": name, // Typo, "name" becomes "naem"
  "email": email,
});

因此,答案是,我们需要toJson将模型转换为Map,并将其添加到Cloud Firestore。

相关问题