如何在firestore文档中添加或编辑特定值的地图?

3 浏览
0 Comments

如何在firestore文档中添加或编辑特定值的地图?

我有一个Firestore文档中的地图,看起来像这样:

enter image description here

目前我对以下几点感到困惑:

  1. 如何更新地图中的一个项目的值
  2. 向地图中添加一个新值

根据文档,我以为使用Update()是最好的选择:

Firestore中的Set():

要创建或覆盖单个文档,请使用set()方法:

Firestore中的Update():

要更新文档的某些字段而不覆盖整个文档,请使用update()方法:

所以我只想更新我的inPack地图。我使用以下代码进行更新:

                    db
                        .collection('GearLockerItems')
                        .doc(doc.reference.id)
                        .update(
                      {
                        'inPack': {packID: false},
                      },
                    );

问题在于它正在覆盖valueId而不是添加一个新的valueID。所以我通过覆盖整个内容来更新inPack。我想我没有进入到下一层级,所以陷入了困境。

0
0 Comments

问题出现的原因是为了在Firestore文档中的地图中添加或编辑特定的值。解决方法是使用点表示法。

根据官方文档,点表示法允许您更新单个嵌套字段而不覆盖其他嵌套字段。如果您不使用点表示法更新嵌套字段,则会覆盖整个地图字段。

以下是使用点表示法的示例代码:

db

.collection('GearLockerItems')

.doc(doc.reference.id)

.update({'inPack.$packId': false},

);

0