Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

146
Views
La función de nube de Firestore agrega un campo al documento

Estoy tratando de escribir una función en la nube que me permita crear una colección con un documento y luego agregar un campo a ese documento. Actualmente, mi función crea la colección y el comentario, pero reemplaza cada campo cada vez y sobrescribe el existente, por lo que después de enviar todos los datos, solo termino con un campo. ¿Cómo hago para agregar un campo cada vez? mi código

 if (data && typeof data === "object") { Object.keys(data).forEach((docKey) => { firestore .collection(collectionKey) .doc("quotes") .set(data[docKey]) .then((res) => { console.log("Document successfully written!"); }) .catch((error) => { console.error("Error writing document: ", error); }); //}); }

datos

 "2": { "Quote": "Lorem Ipsum" }, "3": { "Quote": "123" }, "4": { "Quote": "456" }

después de ejecutar la función, lo único que estará en las comillas del documento es la última entrada "456". ¿Cómo hago para que todos los campos permanezcan?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Parece que está intentando actualizar el documento, pero está utilizando la función .set() que actualiza su documento con los datos proporcionados recientemente. Necesitará .update() en su lugar para conservar sus datos anteriores.

 if (data && typeof data === "object") { Object.keys(data).forEach((docKey) => { firestore .collection(collectionKey) .doc("quotes") .update(data[docKey]) .then((res) => { console.log("Document successfully written!"); }) .catch((error) => { console.error("Error writing document: ", error); }); //}); }
about 4 years ago · Juan Pablo Isaza Report

0

Para agregar campos a un documento existente, use la update como muestra la respuesta de Anuj.

Si desea crear el documento inicial y actualizarlo con una sola instrucción, puede pasar la opción merge: true a set() :

 firestore .collection(collectionKey) .doc("quotes") .set({ [docKey]: data[docKey] }, { merge: true })

Notará que también agregué [docKey]: a los datos, ya que espero que desee que el valor de docKey se convierta en el nombre del campo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!