gpt4 book ai didi

firebase - 如何在 Firestore 文档 Flutter 中将数据添加到 map

转载 作者:行者123 更新时间:2023-12-03 04:14:04 25 4
gpt4 key购买 nike

我正在尝试将键值对添加到 firestore 文档中的 map 中。您可以看到下面设置的文档。 “账单”映射由代表每张账单的键值对组成。每项法案都由一张 map 表示。例如:“Bill 1”由代表商品名称和商品成本的键值对组成。

enter image description here

我想将键值对添加到账单中。例如,我想向“Bill 1”添加一个项目,以便它包含“Bacon: 14”和我添加的其他项目。

这是我现在拥有的代码。但是,此代码只是将 Bacon 替换为我添加的新项目。它不会向现有 map 添加新值,只是用新元素和成本替换整个 map (法案 1 的内容)。

这是当前代码:

  static Future addItemToBill(GroceryItem groceryItem, double cost) async {

try{

final FirebaseUser currentUser = await FirebaseAuth.instance.currentUser();

int currentBillNumber = await getBillCount(currentUser.uid);

if(currentBillNumber == 0){
currentBillNumber = 1;
}

final DocumentReference documentReference = usersCollection.document(currentUser.uid);

await documentReference.updateData({
"Bills.Bill $currentBillNumber": {
"${groceryItem.itemName}" : cost
}
});

}catch(error){

}
}

Current Code

感谢您的帮助!

最佳答案

当您调用 updateData 时,Firestore 将始终替换您提供的每个 key 后面的所有内容。在您的情况下,键是“Bills/Bill $currentBillNumber”,它将仅包含您提供的内容,替换给定键处已有的内容。

如果您想添加新内容,您的意愿必须足够具体,以免取代其他值。

      await documentReference.updateData({
"Bills.Bill $currentBillNumber.${groceryItem.itemName}": cost
});

关于firebase - 如何在 Firestore 文档 Flutter 中将数据添加到 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62011037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com