繁体   English   中英

无法在 Firebase 中获取文档 ID

[英]Unable to get doc id in Firebase

我试图通过单击删除该特定记录来获取每个数据条目的文档 ID,但在检查时它只显示 Firebase 中第一个条目的 ID。

const deleteRecord = () => {
  db.collection("records").onSnapshot((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      // console.log(doc.id)
      let recToDel = document.querySelectorAll(".records")
      for (let toDelRecord of recToDel) {
        toDelRecord.onclick = () => {
          console.log(doc.id)
        }
      }
    })
  })
}

循环是嵌套的,因此querySnapshot.forEach循环的最后一次迭代是为每个recToDel dom 元素设置相同的 doc.id 的迭代。

通过仅循环一个集合并索引到另一个集合来修复...

    let recToDel = Array.from(document.querySelectorAll(".records"));
    querySnapshot.docs.forEach((doc, index) => {
      if (index < recToDel.length) {
        let toDelRecord = recToDel[index];
        toDelRecord.onclick = () => {
          console.log(doc.id)
        }
      }
    });

如果.records元素少于文档,则不会分配一些元素。

在快照上执行此onSnapshot将导致每次集合更改时(包括删除时)都进行这些分配。 如果这不是您的意图,请更改为get()进行修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM