Hola quiero actualizar un campo en un documento de firebase.
En este momento, estoy accediendo a la colección de documentos de esta manera. Sin embargo, tengo problemas para configurar el campo de recursos compartidos del documento en recursos compartidos+=1. ¿Qué estoy haciendo mal aquí en el método set?
const buyStock = async () => { const q = await query( collection(db, 'myStocks'), where('ticker', '==', props.name) ); const querySnapshot = await getDocs(q); if (!querySnapshot.empty) { // simply update the record querySnapshot.forEach((doc) => { doc.id.set({ shares: doc.id.data().shares+=1 }) // doc.data() is never undefined for query doc snapshots console.log(doc, doc.id, ' => ', doc.data()); });Ya casi estás ahí. Para actualizar un documento, necesita una referencia a ese documento. Puedes conseguir esto con:
querySnapshot.forEach((doc) => { doc.ref.update({ shares: doc.data().shares+=1 }) });También puede usar el operador de incremento atómico incorporado:
doc.ref.update({ shares: increment(1) })Parece que está llamando al método set en el campo 'id'. Intenta quitar eso. Así que hazlo
doc.set({ shares: doc.data().shares+=1 })dale una oportunidad. Si eso no funciona, intentaría actualizar un documento que no forma parte de una instantánea de consulta.