我有一个带有fire firestore的角度应用程序,其结构如下:
--nombre
--grupo
--nombre1
--nombre2
--nombre3
--numerocuenta1
--numerocuenta2
--numerocuenta3
--resuelto
--0: false
--1: false
.
.
.
--13: false
正如你所看到的,最后我有一个boolean(resuelto)数组,其中包含13个元素,我想在点击具有相同索引的元素时更改某个索引的值
¿有没有办法访问该数组的每个索引并更改其值?
我试过这个:
this.taskDoc = this.afs.doc(`tasks/${task`);
this.taskDoc.update(resuelto[0]); <--
而且:
this.taskDoc.update(resuelto.0); <--
答案 0 :(得分:1)
Firestore不支持更新单个数组元素。如果你有一个数组并且想要改变它的一个值,你将必须读取整个数组,在本地更改值,然后再写回整个数组。
将数据建模为对象而不是数组可能更好。可以通过调出对象字段with the dot notation来单独更新对象属性。
答案 1 :(得分:0)
虽然无法按索引对数组中的某些元素执行操作,但是可以使用arrayUnion和arrayRemove按值添加或删除数组中的元素:
doc.update("someField" : FieldValue.arrayUnion("someValue"))
doc.update("someField" : FieldValue.arrayRemove("someValue"))
这使数组的行为更像是集合而不是数组,但它至少为您提供了一些选择。这里有更多文档:https://firebase.googleblog.com/2018/08/better-arrays-in-cloud-firestore.html