Estoy tratando de agregar un nuevo documento en una transacción de Firestore con la versión 9 del SDK de Firebase JS. En la versión 8, podemos usar
const newDocRef = db.collection('coll').doc();para obtener una DocumentReference a un documento que aún no existe, y luego hacer una
transaction.set(newDocRef, { ... }); para establecer el documento en una transacción. ¿Cómo haríamos lo mismo en la versión 9? La nueva clase CollectionReference no parece tener un método doc() como en la versión 8 . ¡Gracias!
Hay una función doc() para crear una DocumentReference y luego runTransaction() para ejecutar una transacción. Intenta refactorizar el código de esta manera:
import { getFirestore, doc, runTransaction } from "firebase/firestore" const newDocRef = doc(db, "col_name", "doc_id"); await runTransaction(db, async (transaction) => { // ... transaction.set(newDocRef, { ...data }); });La documentación tiene ejemplos con la sintaxis funcional y con espacio de nombres. Consulte también esta respuesta para obtener una mejor explicación de las diferencias de sintaxis en V8 y V9:
Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?