Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
No se puede acceder a los datos () en QueryDocumentSnapshot

Estoy tratando de obtener datos de un documento:

 await db.collection("collectionName").doc(uid).get("root").data()

pero obtengo: 'los datos no son una función', lo cual es extraño, si elimino los datos ()

 await db.collection("collectionName").doc(uid).get("root")

Obtengo el siguiente objeto y, de hecho, puedo ver el campo raíz en _fieldsProto

 QueryDocumentSnapshot { _fieldsProto: { root: { mapValue: [Object], valueType: 'mapValue' } }, _ref: DocumentReference { _firestore: Firestore { _settings: [Object], .......

¿Alguien sabe cómo puedo obtener campos de QueryDocumentSnapshot?

editar:

Me di cuenta de que estaba llamando a data() antes de esperar. El código de trabajo es:

 const snapshot await db.collection("collectionName").doc(uid).get() console.log(snapshot.data())
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Sugiero comenzar con la documentación para aprender cómo obtener un documento de Firestore . get() devuelve una promesa que se cumple cuando se completa la consulta.

 db.collection("collectionName").doc(uid).get().then(doc => { if (doc.exists) { console.log("Document data:", doc.data()); } else { // doc.data() will be undefined in this case console.log("No such document!"); } }).catch((error) => { console.log("Error getting document:", error); });

Por lo que puedo decir, no está utilizando then o await para esperar a que se complete la consulta y obtener la instantánea en la devolución de llamada. Ese no es un paso opcional: los resultados de la consulta no están disponibles de inmediato.

Además, get() no acepta ningún argumento. Si desea un campo fuera de la instantánea, debe profundizar en la instantánea proporcionada por la devolución de llamada. Si el campo de su documento se llama "raíz", simplemente acceda a él como cualquier propiedad de objeto:

 console.log(doc.data().root)
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda