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

111
Views
firestore updateDoc reemplaza todo el campo en lugar de actualizar?

Estoy tratando de averiguar qué estoy haciendo incorrectamente aquí cuando quiero actualizar solo un valor de mi campo en el almacén de incendios, pero en lugar de eso, ¿se reemplazó todo el campo?

también, por alguna razón, mi variable de date parece convertirse directamente en la date de la cadena en firestore en lugar del valor que contiene.

Aquí está mi código para actualizar el Doc:

 export async function addLikesToFeed(date, likes){ try{ // it literally updates to {'date': 'likes: 1'} await updateDoc(doc(db, 'Bulletin', `bulletin`), { date: {likes: likes+1}}) } catch(error){ console.log('error updating Likes at addLikesToFeed: ', error.message) } }

La siguiente es una captura de pantalla de mi firestore. Si '05-02-2022' en la parte de la date , se vuelve como lo que ves en la imagen. Si mantuve la date como se ve en el código, se convierte en la parte date like .

la variable de date contiene una cadena y likes es un número.

Quiero que mi función funcione para que cuando haga clic en mi botón agregue un Me gusta al valor en la parte Me likes , y estoy tratando de averiguar por qué no puedo hacer eso.

Gracias

ingrese la descripción de la imagen aquí

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

0

Si desea utilizar el valor de la date como nombre de campo, puede utilizar la notación [] :

 await updateDoc(doc(db, 'Bulletin', `bulletin`), { [date]: {likes: likes+1}})

Sin embargo, esto seguirá reemplazando todo el campo para esa fecha. Si desea actualizar solo el subcampo Me likes , puede usar la notación de puntos para actualizar campos en objetos anidados:

 await updateDoc(doc(db, 'Bulletin', `bulletin`), { [date+".likes"]: likes+1})

Finalmente, Firestore en realidad tiene un operador incorporado para incrementar valores , lo que evita condiciones de carrera cuando varios usuarios actualizan los valores de likes casi al mismo tiempo.

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!