For the structure of my database I need to know if the automatically generated identifiers in Firebase Cloud Firestore are unique in the collection or in the whole database.
How to do that?
For the structure of my database I need to know if the automatically generated identifiers in Firebase Cloud Firestore are unique in the collection or in the whole database.
How to do that?
The keys generated by calling add()
in Firestore are not tied to the collection on which you call add()
. Instead they are random identifiers that are statistically guaranteed to be unique. In the case of Firestore (and Firebase Realtime Database) these keys are generated client-side.
If you're interested, have a look at how the Firestore JavaScript SDK implements the logic:
In itself the logic is similar to how the Firebase Realtime Database generates its push IDs. The main difference seems to be that Firestore's auto-generated keys are not based on the local timestamp, so they cannot be meaningfully used to order the documents in the collection.
It seems that in node and in modern browsers the auto generated IDs are crypto quality random. https://github.com/firebase/firebase-js-sdk/blob/66deb252d9aebf318d2410d2dee47f19ad0968da/packages/firestore/src/platform/node/random_bytes.ts