¿Cómo podemos crear un documento con una identificación personalizada en firestore con el nuevo SDK modular V9?
const register = async function (adminEmail){ try{ const docSnap = await getDoc(availableIdRef); const collegeId = docSnap.data().id; //This should be the document id const adminRef = collection(firestore, 'admin'); await addDoc(adminRef, {adminEmail, collegeId}); }catch(e){ alert("Error!"); } } Quiero crear un nuevo documento con id como collegeId en la colección de admin .
Sé cómo hacer esto en la versión web 8 (espacio de nombres) pero no tengo idea acerca de la versión web 9 (modular).
Puede usar el método setDoc() para especificar una ID en lugar de addDoc , que generará una ID aleatoria como se menciona en la documentación :
const adminRef = doc(firestore, 'admin', collegeId); // doc --->^ await setDoc(adminRef, {email: adminEmail, id: collegeId}) // overwrites the doc if it already exists // ^^^ También tenga en cuenta que para crear una DocumentReference necesita usar doc() y no collection() que se usa para crear una CollectionReference . He explicado la diferencia en estos 2 aquí: Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?