Estoy usando firestore para almacenar algunos datos en dos colecciones ("usuarios" y "solicitudes"). Tengo algunas funciones en mi código javascript que me permiten leer y escribir los datos en la base de datos, y funcionan bien. Sin embargo, cuando uso los mismos métodos en el siguiente código, obtengo dos errores:
He probado varias opciones pero no funcionan y estoy muy confundido, porque el código que uso para acceder a los datos funciona bien en otras partes del programa.
document.addEventListener('DOMContentLoaded', function() { const user = auth.currentUser; getDocs(collection(db, "requests")).then(querySnapshot => { querySnapshot.forEach((doc) => { document.getElementById(doc.id).addEventListener('click', function() { openAcceptModal(); }) }) }) getDoc(doc(db, "users", user.email)).then(docSnap => { if (docSnap.exists()) { const uEmail = docSnap.get("email"); const uName = docSnap.get("name"); const uPost = docSnap.get("post"); const uRating = docSnap.get("rating"); const uTeam = docSnap.get("team"); console.log(uEmail,uName,uPost,uRating,uTeam); } }) })¿Alguien tiene alguna idea de lo que está mal con esto?
El primer error "No se pueden leer las propiedades de nulo (leyendo 'correo electrónico') en HTMLDocument" se produce principalmente si el usuario actual no ha iniciado sesión y tomará el valor nulo, por lo que el usuario no podrá acceder al 'correo electrónico' . Debe verificar si el usuario ha iniciado sesión o no, puede consultar la respuesta de stackoverflow donde se proporciona un ejemplo.
El segundo error "No se pueden leer las propiedades de nulo (leyendo 'addEventListener')" se resuelve principalmente verificando la variable antes de agregar un detector de eventos. Puede consultar la respuesta de stackoverflow donde Rob resolvió el problema.