Home > front end >  How to create a custom id document in firestore(Firebase modular SDK (v9))
How to create a custom id document in firestore(Firebase modular SDK (v9))

Time:10-09

How can we create a document with a custom id in firestore with the new modular SDK 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!");
  }
}

I want to create a new document with id as collegeId in admin collection.

I know how to do this in web version 8(namespaced) but have no idea about web version 9(modular).

CodePudding user response:

You can use setDoc() method to specify an ID instead of addDoc which will generates a random ID as mentioned in the documentation:

const adminRef = doc(firestore, 'admin', collegeId);
//       doc  --->^
await setDoc(adminRef, {adminEmail, collegeId})
//    ^^^

Also note that to create a DocumentReference you need to use doc() and not collection() which is used to create a CollectionReference. I've explained difference in these 2 here: Firestore: What's the pattern for adding new data in Web v9?

  • Related