带Firestore的ScopedModel添加重复记录

时间:2019-06-07 10:29:14

标签: firebase flutter dart google-cloud-firestore

我有ScopedModel,它与FireStore集成在一起。 每当我在FireStore中添加或更新记录时,都会刷新并每次在模型中添加重复的值。 如何在FireStore重新加载现有值之前将其删除。

ScopedModel-用于加载初始值

Firestore.instance
    .collection('categoryMaster')
    //.where('isActive', isEqualTo: true)
    .orderBy('categoryCode')
    .snapshots()
    .listen((data) {
  data.documents.forEach((doc) {
    finalData.add(Category.map(doc));
  });
}).asFuture();

尝试更新子类中的值,再次更新后,在模型中添加了相同的值。例如,如果我在更新后在同一个列表[a,b,c,d,e,a,b,c,d,e]中又添加了5个值,则我有5条记录为[a,b,c,d,e]

Firestore.instance.collection('categoryMaster')
.document(category[index].field1)
.updateData({
  "isActive": category[index].isActive
      ? false
      : true
}).whenComplete(() {
  setState(() {
    print(category.length);
  });
}).catchError((e) {
  print(e);
});

如何避免模型中出现重复值?

0 个答案:

没有答案