簡體   English   中英

如何在 Firestore 中更改文檔數組字段的某個索引的值?

[英]How to change the value of a certain index of an array field of a document in Firestore?

我有一個帶有雲 firestore 的角度應用程序,其結構如下:

--nombre
--grupo
--nombre1
--nombre2
--nombre3
--numerocuenta1
--numerocuenta2
--numerocuenta3
--resuelto
  --0: false
  --1: false
  .
  .
  .
  --13: false

如您所見,最后我有一個包含 13 個元素的布爾值 (resuelto) 數組,我想在單擊具有相同索引的元素時更改某個索引的值

¿有沒有辦法訪問該數組的每個索引並更改其值?

我試過這個:

this.taskDoc = this.afs.doc(`tasks/${task`);
this.taskDoc.update(resuelto[0]); <-- 

還有這個:

this.taskDoc.update(resuelto.0); <--

Firestore 不支持更新單個數組元素。 如果您有一個數組並想更改其中一個值,則必須讀取整個數組,在本地更改值,然后將整個數組寫回。

將數據建模為對象而不是數組可能更好。 可以通過使用點符號調出對象字段來單獨更新對象屬性。

雖然您不能按索引對數組中的某些元素進行操作,但您可以使用 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM