更新数组中的Map值,使用Flutter Firebase。

6 浏览
0 Comments

更新数组中的Map值,使用Flutter Firebase。

这是我想要更新的地图和值。问题是当我尝试更新imageUrl时,整个Map被替换为只有新的ImageUrl值。我希望只更新imageUrl,而不影响其他数据。以下是我尝试但未成功的操作:

FirebaseFirestore.instance.collection('oorders').doc('MyDocId')

.update({ 'items.0.imageUrl' : '新的图片链接' });

0
0 Comments

问题出现的原因是Firestore目前不支持直接更新数组字段中的现有元素。解决方法是读取整个数组,对其进行内存中的修改,然后完全更新修改后的数组字段。另一种解决方法是使用嵌套对象(maps)而不是数组来设计数据库结构。通过这种方式,可以使用点表示法更新嵌套对象中的字段,而不会删除其他字段。文章中提供了一个示例来说明如何更新文档。此外,文章还提到了使用.update方法而不是额外数据的方法,并建议提问者提出一个新的问题来解决他们的问题。

0