Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

110
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda