Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图删除firestore中的字段数组,但我的方法无效_Javascript_Google Cloud Firestore - Fatal编程技术网

Javascript 试图删除firestore中的字段数组,但我的方法无效

Javascript 试图删除firestore中的字段数组,但我的方法无效,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,因此,我试图删除字段Notes[1],selectedNote有一个我需要删除的选定数组的值 window.addEventListener("load", function load(event) { document.getElementById("deleteNotes").onclick = function() { console.log("you did click atleast"); firebase.auth().onAuthStateChanged(fun

因此,我试图删除字段Notes[1],selectedNote有一个我需要删除的选定数组的值

window.addEventListener("load", function load(event) {
  document.getElementById("deleteNotes").onclick = function() {
    console.log("you did click atleast");
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        let user = firebase.auth().currentUser;
        let userInfo = db.collection("Users").doc(user.uid);
        userInfo.get().then(function(doc) {
          if (doc.exists) {
            let selectedNote = document.getElementById("noteSelect")
              .selectedIndex;
            console.log(selectedNote);
            var cityRef = db.collection("Users").doc(user.uid);
            cityRef.update({
             Notes: FieldValue.delete().arrayRemove(selectedNote)
            });
          }
        });
      }
    });
  };
});

所以我试着用这个

 cityRef.update({
             Notes: FieldValue.delete().arrayRemove(selectedNote)
            });


要删除所选便笺,例如便笺中的数组1。我不希望删除整个Notes字段,只希望删除Notes字段中选定的数组。出于某种原因,我正在努力让它工作。任何帮助都将不胜感激Firebase数组不为其数组使用索引,而是需要数组项的值。这意味着您无法摆脱重复数据

您必须首先获取数组“Notes”,并从其索引返回其值 不过,我听说数组可能会出现顺序错误,因为它们不依赖于索引

改变这条线

Notes: FieldValue.delete().arrayRemove(selectedNote)
对此,

Notes: FieldValue.delete().arrayRemove(doc.data().Notes[selectedNote])

我建议您从本地存储的变量中提取数组的值,以确保值与编辑前和编辑后匹配。

有人有什么想法吗?