const uid = firebase.auth().currentUser.uid; var query = firebase.database().ref("/user/").child(user.uid).orderByChild("l1").equalTo("bought ") query.on("value", function(snapshot) { var lg1=document.getElementById("lg1"); var lg2=document.getElementById("lg2"); var blg=document.getElementById("blg"); lg2.style.display=" none"; lg1.style.display="block"; blg.style.display="block"; });Estoy comparando los datos de un niño en la base de datos en tiempo real de Firebase y desactivo la visualización mediante la función de instantánea, pero no funciona. Intenté e investigué mucho, pero no pude encontrar una solución perfecta.
¿Alguna idea sobre cómo proceder por encima del código?
Aquí está la captura de pantalla de mi base de datos en tiempo real de firebase
Las consultas de Firebase funcionan en la lista de nodos secundarios directos en la ruta que consulta.
Dado que su consulta se ejecuta en /user/$uid , los nodos que considera la consulta son email , l1 , points y uid . Para cada uno de ellos, busca una propiedad secundaria l1 y compara el valor con lo que especificó. Pero ninguno de estos cuatro nodos tiene una propiedad l1 .
Si desea poder buscar los nodos secundarios de /user/$uid para su propiedad l1 , necesita un nivel adicional en el JSON, que generalmente se genera llamando a push() como se muestra en la documentación sobre cómo agregar nodos a un lista Entonces tu JSON se convertiría
user: { "$uid": { "$pushid": { // 👈 new email: "...", l1: "...", points: ..., uid: "...", } } }Con esa estructura su consulta funcionará.