【问题标题】:Firestore not adding docs to the sub-collection after deleting docs from the sub-collection从子集合中删除文档后,Firestore 未将文档添加到子集合
【发布时间】:2021-02-09 20:25:16
【问题描述】:

在 Firestore 中,删除子集合中的所有文档,然后重新添加它们后,它不会添加文档。

这是一种奇怪的行为,有时该项目在子集合中闪烁红色并再次消失。但是当我重新加载应用程序时,它会添加它们。有人知道我做错了吗?

尝试管理购物车中的一些商品。

对包含该 uid 的任何文档的集合进行查询而不是尝试管理子集合会更好吗?

删除:

 _db.collection('carts').doc(uid).collection('items').snapshots().forEach((element) {
    for (QueryDocumentSnapshot snapshot in element.docs) {
      snapshot.reference.delete();
    }
  });

再次添加:

_db.collection('carts').doc(uid).collection('items').add({
    'itemID': item.itemID,
    'price': item.price,
   
  });

【问题讨论】:

  • 在将所有内容移入主集合“carts”并搜索 .where('uid', isEqualTo: uid) 后,它也在做同样的事情。我认为被卡住的删除查询可能有问题,所以当我添加更多项目时,它们会被添加并立即删除!

标签: flutter google-cloud-firestore


【解决方案1】:

原来的删除查询不起作用。我在另一篇文章中找到了,这个很好用。

      FirebaseFirestore.instance.collection('carts').where('uid', isEqualTo: uid).get().then((value) => {
        value.docs.forEach((doc) {
          doc.reference.delete();
        })
      });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2018-11-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2020-06-28
    相关资源
    最近更新 更多