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

104
Visualizações
tratando de agregar un artículo en la colección Firestore después de verificar la condición de que el artículo aún no existe. Si aumenta la cantidad de lo contrario

tratando de agregar un artículo en la colección Firestore después de verificar la condición de que el artículo aún no existe. Si existe, aumente la cantidad del artículo; de lo contrario, agregue el nuevo artículo con la cantidad 1.

 function addToCart(item) { console.log(item) let cartItem = db.collection('cart-items').doc(item.id) cartItem.get() .then((doc) => { if (doc.exists) { cartItem.update({ quantity: doc.data().quantity + 1 }) } else { cartItem.set({ image: item.image, make: item.make, name: item.name, rating: item.rating, price: item.price, quantity: 1 }) } })

}

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hacer un get-and-set como el que está haciendo aquí puede conducir a una condición de carrera si dos usuarios actualizan el carrito al mismo tiempo. Puede pensar que eso no sucederá en su caso de uso, pero aún así recomendaría protegerse contra esto mediante el uso de una transacción .

Sin embargo, en este caso específico, es mucho más simple y más idiomático, así que siempre realice una operación de set y use la operación de incremento atómico para aumentar la cantidad:

 let cartItem = db.collection('cart-items').doc(item.id) cartItem.set({ image: item.image, make: item.make, name: item.name, rating: item.rating, price: item.price, quantity: firebase.firestore.FieldValue.increment(1) })

Puede parecer un desperdicio enviar los otros valores de campo varias veces, pero Firestore no le cobrará más por la operación aquí, y la simplificación del código es significativa.

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