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

173
Vistas
Firebase Function consulta y actualiza un solo documento de Firestore

Estoy tratando de actualizar el documento de Firestore de un usuario desde una función de Firebase mediante una consulta y tengo problemas para que funcione. Mi código de función es el siguiente:

 const functions = require('firebase-functions'); // The Firebase Admin SDK to access Firestore. const admin = require('firebase-admin'); admin.initializeApp(); /** * A webhook handler function for the relevant Stripe events. */ // Here would be the function that calls updatePlan and passes it the customer email, // I've omitted it to simplify the snippet const updatePlan = async (customerEmail) => { await admin.firestore() .collection('users').where('email', '==', customerEmail).get() .then((doc) => { const ref = doc.ref; ref.update({ 'purchasedTemplateOne': true }); }); };

Recibo el siguiente error en los registros de Firebase cuando se ejecuta la consulta:

Excepción de una función finalizada: TypeError: no se pueden leer las propiedades de undefined (leyendo 'actualizar')

Cualquier ayuda con respecto a lo que puedo estar haciendo mal o sugerencias sobre cómo podría lograr esto sería muy apreciada. ¡Gracias de antemano!

Actualizar:

Pude resolver mi problema con una mayor comprensión de las consultas de Firestore:

 const updatePlan = (customerEmail) => { const customerQuery = admin.firestore().collection("users").where("email", "==", customerEmail) customerQuery.get().then(querySnapshot => { if (!querySnapshot.empty) { // Get just the one customer/user document const snapshot = querySnapshot.docs[0] // Reference of customer/user doc const documentRef = snapshot.ref documentRef.update({ 'purchasedTemplateOne': true }) functions.logger.log("User Document Updated:", documentRef); } else { functions.logger.log("User Document Does Not Exist"); } }) };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El mensaje de error le dice que doc.ref no está definido. No hay ref de propiedad en el objeto doc .

Esto probablemente se deba a que no entendió bien el objeto que resulta de una consulta de Firestore. Incluso si espera un solo documento, una consulta filtrada puede devolver cero o más documentos. Esos documentos siempre se representan en un objeto de tipo QuerySnapshot . Eso es lo que realmente es doc , una QuerySnapshot, por lo que debe tratarlo como tal.

Tal vez debería verificar el tamaño del conjunto de resultados antes de acceder a la matriz de documentos para ver qué devuelve la consulta. Esto está cubierto en la documentación .

about 4 years ago · Juan Pablo Isaza 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