如何更新firestore中数组内的对象? [复制]
Posted
技术标签:
【中文标题】如何更新firestore中数组内的对象? [复制]【英文标题】:How can I update an object inside of an array in firestore? [duplicate] 【发布时间】:2020-10-06 13:37:40 【问题描述】:我想更新 Firestore 中数组中对象的 completed
属性,但我不知道如何访问数组中的特定元素。图像将显示结构。
我已经走到了这一步,但不知道如何选择,例如数组中的第 1 项。我正在考虑使用它的 ID(它有一个 id 属性),但不知道如何到达那里。
const businessRef = db.collection('approvedBusinesses').doc(businessId)
try
businessRef.update(
[`bookings.$currentDate ????? `]: true // what to add after currentDate?
)
顺便说一下,这就是数组的创建方式(以及其他对象的推送方式)
const bookingObj =
carro: 'PASSA_CARRO',
completed: false,
userId: userObject.uid,
businessRef.update(
[`bookings.$currentDate`]: firebase.firestore.FieldValue.arrayUnion(bookingObj),
)
【问题讨论】:
【参考方案1】:Firestore 没有允许您通过索引更新数组中现有项目的操作。
要更新数组中的现有项,您需要:
-
将整个文档读入您的应用程序。
在您的应用程序代码中修改数组中的项目。
将整个数组写回到文档中。
我很确定以前有人问过这个问题,所以让我看看是否有一个例子的答案。
另见:
How to remove an array element according to an especific key number? Simple task list ordering - how to save it to Firebase Firestore? How to update only a single value in an array How to update an "array of objects" with Firestore?【讨论】:
在我的应用程序中处理“预订”的更友好方式是什么?我仍然需要将它们按日期分开。我觉得我在使用数组时会遇到麻烦...... 我希望它们在一个子集合中,这是解决“三步问题”的一种方法,也允许对它们进行查询。但这当然会带来更高的成本,因为您需要读取/写入更多文档。以上是关于如何更新firestore中数组内的对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章