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

373
Visualizações
React JS - Cómo actualizar los valores de firestore en tiempo real

Hola, he cambiado con éxito el valor de una variable de documento dentro de mi Firestore, pero no se actualiza visualmente (si eso tiene sentido) tan pronto como llamo a la función, se actualiza después de una actualización completa o una actualización normal.

Así es como se ve en la tabla y en el Firestore:

Representación de tabla

ingrese la descripción de la imagen aquí

Firestore

ingrese la descripción de la imagen aquí

Cuando presiono el botón, cambia el valor a +1 pero no cambia visualmente hasta que actualizo la página

ingrese la descripción de la imagen aquí

y también hace cambios en el Firestore

ingrese la descripción de la imagen aquí

Entonces, quiero saber si es posible hacer esto en tiempo real porque no solo no se actualiza tan pronto como presiono el botón, no puedo presionarlo más de una vez, si presiono el botón digamos 10 veces lo hará todavía solo hacer ++1 en lugar de ++1 (x10) esta es la pieza de código:

 const mas = (producto, quantity) => { const temporalQuery = db.collection('productosAIB').doc(producto); temporalQuery.update({ cantidad: ++quantity }) };

Y aquí es donde se representa y donde se llama a la función:

 <tbody> {productos.map((productos, index) => ( <tr key={productos.id || index}> <td> <button onClick={() => mas(productos.descripcion, productos.cantidad)} /> {productos.cantidad} <button onClick={() => menos(productos.descripcion, productos.cantidad)} /> </td> <td>{productos.grado}</td> <td > {productos.descripcion} </td> <td >${productos.precio}</td> </tr> )) } </tbody>

Bit que lee de firebase

 const [productos, setProductos] = useState([]); const productosRef = db.collection('productosAIB'); useEffect(() => { productosRef.orderBy('cantidad') .get() .then((snapshot) => { const tempData = []; snapshot.forEach((doc) => { const data = doc.data(); tempData.push(data); }); setProductos(tempData); }); }, []);

si necesita código completo hágamelo saber. Hace el trabajo, pero solo quería saber si había una manera de hacerlo en tiempo real.

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

0

Está utilizando .get() que lee los documentos de la base de datos solo una vez. Si desea continuar escuchando los cambios , use onSnapshot en su lugar:

 useEffect(() => { productosRef.orderBy('cantidad') .onSnapshot() ...
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