Firestore删除对象中的字段是数组内另一个对象的字段

时间:2019-08-26 09:49:59

标签: typescript firebase google-cloud-firestore

我有这样的模特

UNION ALL

我想删除 abc 字段

这里使用的是代码,但对我不起作用(另外,我正在使用批处理写入来更新多个文档)。

{
   "actions": [
      {
         "type": "1",
         "value": {
            "abc": {
               "1": "true"
            },
            "def": {
               "1": "true"
            }
         }
      }
   ]
}

我也尝试过这样,但结果相同

// getScene's data received from firestore
let batch = this.firebase.firestore().batch();
getScene.forEach(o => {
            let removeDeviceFromScene = this.sceneDoc.doc(o.id);
            const fieldPath = `actions.value.abc`;
            batch.update(removeDeviceFromScene, {
                    filePath: this.firebase.firestore.FieldValue.delete()
                }
            }); await batch.commit().then(() => {
            console.log(`Begin write batch`);
        });

我的代码有问题吗,这个问题有解决方案吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

我之前说的是不正确的。无法更新Firestore文档中数组中的单个元素。参见How to Add/Update/Remove array elements in firebase firestore android using Hashmap? A Store Database

由于(obj as B).year 是一个数组,因此您需要指定要更新的元素的数组索引。因此:actions