Cuando uso esta función, obtengo el siguiente resultado de mi base de datos en tiempo real. Parece un objeto json. ¿Cómo puedo convertir eso en una matriz o recuperar la cadena nombre de usuario? snapshot.userName no funciona.
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.Push = functions.database.ref('/placeID/{pushId}/') .onCreate((snapshot, context) => { console.log(snapshot) })Un objeto DataSnapshot de Realtime Database es un contenedor que contiene sus datos. Para obtener los datos que contiene, debe recuperar su valor mediante el método val() :
console.log(snapshot.val()); Para obtener el nombre de userName de sus datos, puede usar:
console.log(snapshot.val().userName) // note: if "userName" is missing, this will log `undefined`o
// more useful with large snapshots console.log(snapshot.child("userName").val()) // note: if "userName" is missing, this will log `null` Consulte el siguiente enlace para obtener más información sobre el objeto DataSnapshot y los métodos/propiedades disponibles: https://firebase.google.com/docs/reference/functions/providers_database.datasnapshot
Nota agregada: la clase DataSnapshot anula el toJSON() , es por eso que cuando lo registra, vio los datos que contenía en lugar de los propios métodos/propiedades de DataSnapshot.
snapshot es una referencia a un documento de Firestore. Para obtener los datos contenidos en un doc , debe llamar a doc.data() . Entonces, en su caso, sería doc.data().userName .
Consulte la documentación para ver algunos ejemplos.