Estoy tratando de mostrar los datos de la instantánea de la base de datos en la página html, pero parece mostrar un '[objeto Objeto]' en lugar de gmail. Soy nuevo en el código, así que tenga paciencia. aquí está el código:
firebase.database().ref('gmails/').get().then((snapshot) => { if (snapshot.exists()) { console.log(snapshot.val()); var content = ''; // give each message a unique ID content += "<li>"; content += snapshot.val(); content += "</li>"; document.getElementById("gmails").innerHTML += content; } else { console.log("No data available"); } }).catch((error) => { console.error(error); });EL HTML:
<ul id="gmails"> </ul>ingrese la descripción de la imagen aquí
En la imagen se puede ver el objeto en lugar del valor
Parece que tiene un Object JavaScript que contiene datos que desea representar como texto en su página. Cuando ve [object Object] es una señal de que está tratando de representar algo como texto que su código no sabe cómo convertir en texto, en este caso su objeto de snapshot .
Hay algunas cosas simples que puede intentar / preguntas que puede responder por sí mismo:
snapshot ? ¿Sabes los nombres de las variables que contiene? ¿Se supone que son cuerdas? ¿Está envolviendo HTML de algún tipo? Si es así, probablemente querrá representar cadenas específicas dentro del objeto o una cadena grande contenida dentro. Si es HTML, creo que puede insertarlo de la forma en que ya lo está. Si no conoce la estructura del contenido de la snapshot , hay algunas formas sencillas de averiguarlo:
Si sabe cómo usar el depurador de Chrome (pestaña "fuente" de las herramientas de desarrollo, ctrl-P o comando-P para buscar su archivo relevante, y haga clic en el número de línea para agregar un punto de interrupción), coloque un punto de interrupción en console.log(snapshot.val()); e inspeccionar el valor de la snapshot . Puede pasar el cursor sobre él y hacer clic en sus objetos secundarios, y determinar sus nombres y estructura para acceder y encontrar las cadenas que desea mostrar.
Si desea una solución simple sin herramientas, puede cambiar console.log(snapshot.val()); ...a: console.log(JSON.stringify(snapshot)); ...y vea cómo sus datos están estructurados como JSON. Eso simplemente colocará todo el objeto en su consola, lo que supongo que solo muestra `[objeto Objeto] tal como está.
Una vez que haya resuelto eso, debería poder acceder a los elementos secundarios correctos de la snapshot que contienen el texto que está tratando de representar.