Mad*_*oop 1 firebase flutter google-cloud-firestore
我的文档数据中有一个 Map 对象。像下面这样
我必须向同一张地图添加新的用户出价,而不删除旧数据,但我使用的代码是用新值替换整个地图。关于如何实现我的目标的任何建议。
FirebaseFirestore.instance.collection('products')
.doc(widget.product.uid).update({
'bids': {
auth.currentUser?.email:
currentPrice.toString()
}
});
Run Code Online (Sandbox Code Playgroud)
您需要使用点表示法来更新嵌套字段:
const userEmail = auth.currentUser?.email;
FirebaseFirestore.instance.collection('products')
.doc(widget.product.uid).update({
'bids.${userEmail}': currentPrice.toString()
});
Run Code Online (Sandbox Code Playgroud)
点表示法允许您更新单个嵌套字段而不覆盖其他嵌套字段。如果您更新没有点符号的嵌套字段,您将覆盖整个地图字段
参考:
要更新字段的.键:
var fPath = FieldPath(["bids", "user.name@domain.tld"]);
FirebaseFirestore.instance.collection('products').doc(widget.product.uid).update(fPath, currentPrice.toString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |