Home > other >  Genrate doc id in firestore v9 before the doc is created
Genrate doc id in firestore v9 before the doc is created

Time:11-06

In firestore v8 (web sdk) I was doing it like below:

firestore.ref().collection("genId").doc().id

But I can't figure out the correct syntax for v9 as collection doesn't have doc() method anymore.

Any suggestions are much appreciated

CodePudding user response:

From the Firebase documentation on adding a document:

In some cases, it can be useful to create a document reference with an auto-generated ID, then use the reference later. For this use case, you can call doc():

import { collection, doc, setDoc } from "firebase/firestore"; 

// Add a new document with a generated id
const newCityRef = doc(collection(db, "cities"));

// later...
await setDoc(newCityRef, data);

Instead of writing to the ref as the sample does, you can also get the ID from the document ref with:

console.log(newCityRef.id);

CodePudding user response:

You can call collection to get a CollectionReference Object and use this to call doc.

Collection: https://firebase.google.com/docs/reference/js/firestore_.md#collection

Doc: https://firebase.google.com/docs/reference/js/firestore_.md#doc_2

const ref = collection(firestore, "genId")
const id = doc(collection)

As per the API reference:

If no path is specified, an automatically-generated unique ID will be used for the returned DocumentReference.

  • Related