如何使用JavaScript代码从数组中删除一个映射?

4
我正在尝试使用Javascript从Firestore中删除数组中的一个map。有人能帮助我吗?

enter image description here

By the way我使用了那些方法,但它们都没有起作用。
第一种方法:
imgRef.update({
        "images": firebase.firestore.FieldValue.arrayRemove({
            "caption":...,
            "id":...,
            "postID":...,
            "url":...,
            "userID":...
        })
    });

第二种方法:
imgRef.update({
        "images": firebase.firestore.FieldValue.arrayRemove(0)
    });

感谢您的所有帮助

2个回答

4

如果你想让第一个代码示例正常工作,必须提供所有的映射字段以及与要删除的数组项匹配的字段的确切值。任何不同的值都会导致它无法工作。由于你没有展示这些值,我们无法确认可能出错的地方。

如果你不知道所有确切的值,唯一的选择是阅读文档,通过查找和删除应该被删除的数组元素来修改快照中的数组,并将新的数组写回文档。


3
这里是从数组中召回和更新('remove')元素的完整代码:
imgRef.get().then(function(doc) {
            if (doc.exists) {
                imgRef.update({
                    "images": firebase.firestore.FieldValue.arrayRemove(doc.data().images[position])
                });
            }
        })
        .catch(function(error) {
            console.error(error.message);
        });

如果您发现我的答案对制定您自己的答案有所帮助,欢迎给我的回答点个赞。 - Doug Stevenson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接