Tengo un problema con base de fuego. Todo está bien y funciona, pero si llamo demasiado a la función onBuyHandler (si hago clic demasiadas veces en el botón de compra (porque llama a esta función)), el valor se restablece y se configura desde 1 y no sé por qué. ¿Alguien me puede ayudar?
Esta función:
const onBuyHandler = (event) => { const db = ref(database); const foodRef = ref( database, `users/${user.uid}/items/${props.room}/${props.item.name}` ); get(foodRef) .then((snapshot) => { if (snapshot.hasChild('name')) { runTransaction(foodRef, (data) => { if (data) { data.amount++; invCtx.setItems((prevState) => { const newState = { ...prevState }; newState[props.item.name] = data; return { ...newState }; }); } return data; }); } else { set(foodRef, { name: props.item.name, amount: 1, }); invCtx.setItems((prevState) => { const newState = { ...prevState }; newState[props.item.name] = { name: props.item.name, amount: 1, }; return newState; }); } }) .catch((error) => { console.log(error); }); };