首页 > 解决方案 > 如何在javascript中删除firestore中索引处的数组元素

问题描述

    var arr = [ "GKRLrcpSL2BmKx3BfvWj","fMwH404fweoFJJqyE5Nf" , "DTurwbw64CWw4WosUQtC" ] //
arr.forEach((element) => {
    console.log(element);
    db.collection("Check").doc(element).get().then((docs) => {
        var data = docs.data();
        var arr = data.fill;
        arr.forEach((item) => {
            if(item['check'] == 'a') {
                db.collection("Check").doc(element).update({
                    fill: firebase.firestore.FieldValue.arrayRemove('check')
                }).then((val)  => {console.log("Updated")})
            }
        });
    });
});

Firestore 截图

我有一个包含数组填充的集合检查,并且填充中有对象我想匹配填充中的数据并删除在firestore中索引的值

标签: firebasegoogle-cloud-firestore

解决方案


FieldValue.arrayRemove()仅适用于要删除的数组项的完整值。它不适用于按索引删除项目。事实上,Firestore 并没有提供任何方法来通过索引直接修改数组项。

相反,您需要做的是读取文档,根据需要修改内存中的“填充”数组,然后使用新值将文档更新回文档。


推荐阅读