代码之家  ›  专栏  ›  技术社区  ›  genericUser

Firestore在地图列表中增加一个值

  •  0
  • genericUser  · 技术社区  · 4 年前

    我正试图增加字段 max_invite s_max_invite 关于以下结构:

    enter image description here

    firestore.collection('groups').doc(doc.id).update({
            'types.0.max_invite': firestore.FieldValue.increment(1),
            'types.0.s_max_invite': firestore.FieldValue.increment(1),
        })
    

    }

    结果是:

    enter image description here

    怎么了?

    谢谢

    0 回复  |  直到 4 年前
        1
  •  0
  •   genericUser    4 年前

    Firebase不支持直接更新数组的特定索引。所以我必须阅读文档,提取数据,并在本地更新数组索引。然后再次将文档更新到firestore。

    function updateArrayIncreament(myDoc) {
        let docData = _.cloneDeep(myDoc.data())
        docData.types[0].max_invite += 1
        docData.types[0].s_max_invite += 1
        return docData
    }
    
    firestore.collection('groups').doc(doc.id).update(
        updateArrayIncreament(doc)
    )