• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

123
Vistas
Firebase actualizando los datos recuperados

Estaba practicando firebase firestore y estoy tratando de actualizar los datos que recuperé en función de una condición y recibo este error

FirebaseError: se esperaba el tipo 'rc', pero era: un objeto oc personalizado

 if (updateMerge === "update") { const q = query( collection(db, "contacts"), where("fname", "==", firstName, "lname", "==", lastName) ); const querySnapshot = await getDocs(q); querySnapshot.forEach((doc) => { console.log(doc.id, " => ", doc.data()); const payload = { phone: phone }; setDoc(q, payload); }); }

Estoy haciendo una aplicación de contacto. Puedo ver los datos recuperados en la consola y quiero cambiar el número de teléfono si un usuario ya tiene una cuenta, por lo que la carga útil cambia el teléfono (desde el campo del documento de Firestore): teléfono (estado del teléfono). así que practiqué un poco con setDoc pero generalmente uso "colecciónRef" pero no con una consulta, si puedo ver la consola, lo más probable es que el error esté aquí

 setDoc(q, payload);

Gracias de antemano

about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

setDoc() toma una DocumentReference como primer parámetro. Si está intentando actualizar los documentos en QuerySnapshot , intente refactorizar el código como se muestra a continuación:

 querySnapshot.forEach((doc) => { console.log(doc.id, " => ", doc.data()); const payload = { phone: phone }; // doc.ref is DocumentReference setDoc(doc.ref, payload); });

Si está actualizando 500 documentos o menos, puede usar Escrituras por lotes para asegurarse de que todos los documentos se actualicen o la actualización falle:

 import { writeBatch } from "firebase/firestore"; const batch = writeBatch(db); querySnapshot.forEach((doc) => { console.log(doc.id, " => ", doc.data()); const payload = { phone: phone }; // doc.ref is DocumentReference batch.update(doc.ref, payload); }); batch.commit().then(() => { console.log("Documents updated") }).catch((e) => { console.log("An error occured") })
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda