Firebase 添加新数据时,Firestore正在删除颤振数据

Firebase 添加新数据时,Firestore正在删除颤振数据,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,您好,我正在开发一个应用程序我有一个listview我刚刚在点击时创建的方法当用户单击listview上的项目时,它会将详细信息保存到firestore,但当用户单击其他项目时,它会删除当前项目并添加单击的项目。我只想保留firestore上所有单击的项目。如果您有任何建议,请告诉我谢谢 这是第一个单击的项目 这是第二次单击的项目,它始终保留最后一次单击的数据] Firestore.instance.runTransaction((Transaction transaction) async

您好,我正在开发一个应用程序我有一个listview我刚刚在点击时创建的方法当用户单击listview上的项目时,它会将详细信息保存到firestore,但当用户单击其他项目时,它会删除当前项目并添加单击的项目。我只想保留firestore上所有单击的项目。如果您有任何建议,请告诉我谢谢

这是第一个单击的项目

这是第二次单击的项目,它始终保留最后一次单击的数据]

Firestore.instance.runTransaction((Transaction transaction) async {
    await transaction.set(Firestore.instance.collection("cart").document("LIihBLtbfuJ8Dy640DPd"), {
      foodItem.name : {
        'itemName': foodItem.name,
        'imgUrl': foodItem.imageAssetPath,
        'itemPrice': foodItem.price,
        'quantity': '1',
      }
    });});

您正在使用
文档(“LIihBLtbfuJ8Dy640DPd”)
,因此您将编辑该特定项目。如果您尝试创建具有相同id的新项目
LIihBLtbfuJ8Dy640DPd
,它将用新项目替换旧项目


您必须让Firebase Firestore为您自动创建一个新的文档id,或者您必须自己提供一个唯一的id。

正如我们最近在评论中所说的,您应该使用
更新
而不是
设置
,因为您希望在同一文档中不删除旧数据


此外,也许full可以帮助您找出更多问题。

您应该使用update或add,而不是set,尝试一下,如果它有效,我将提交完整的答案。update有效,非常感谢。我如何检查文档中的数据是否可用例如,如果firabase中的数据可用,我只想增加quantityPlease,你应该为此提出一个新问题。