Home > Net >  Firebase V9 - Custom 'Doc ID' Upon Creation (Javascript)
Firebase V9 - Custom 'Doc ID' Upon Creation (Javascript)

Time:12-15

Im wanting to create a doc in Firebase Firestore with Javascript... That doesn't just have the automatic generated ID

return addDoc(collection(db, "users"), { bio: signupForm['signup-bio'].value });

This is how I'm coding it could someone please show me where or how to add a custom ID to to the doc?

Thanks

CodePudding user response:

In order to set custom document IDs in Firestore, you need to use the set method instead of add:

db.collection("users").doc("YOUR_ID").set({
    bio: signupForm['signup-bio'].value
});

You can refer to the official documentation on how to Set a document which states that:

To create or overwrite a single document, use the set() method:

// Add a new document in collection "cities"
db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})
.then(() => {
    console.log("Document successfully written!");
})
.catch((error) => {
    console.error("Error writing document: ", error);
});

If the document does not exist, it will be created. If the document does exist, its contents will be overwritten with the newly provided data, unless you specify that the data should be merged into the existing document...

CodePudding user response:

Ok, I figured it out...

To create a custom ID for a new doc is as follows...

setDoc(doc(db, 'collection', 'ID'), { feild: value, feild: value });

or in my case as an example...

setDoc(doc(db, 'users', (cred.user.uid), { bio: signupForm['signup-bio'].value });

This creates a new doc (and the users collection if it doesn't exist already) with the ID being the current logged in users UserID and the data in the doc is the value from a signup form called 'signup-bio'

  • Related