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:
add
calls doc()
doc
calls AutoId.newId()
AutoId.newId()
generates a client-side ID
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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…