Estoy tratando de obtener la identificación del documento de cada entrada de datos al hacer clic para eliminar ese registro específico, pero al verificar solo muestra la identificación de la primera entrada realizada en Firebase.
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) } } }) }) }Los bucles están anidados, por lo que la última iteración del bucle querySnapshot.forEach es la que establece el mismo doc.id para cada elemento recToDel dom.
Solucione haciendo un bucle de una sola colección e indexando en la otra...
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) } } }); Si hay menos elementos .records que documentos, algunos no se asignarán.
Hacer esto onSnapshot hará que estas asignaciones se realicen cada vez que cambie la colección, incluso en las eliminaciones. Si esa no es su intención, corrija cambiando a get() .