Идентификаторы документов, сгенерированные Cloud Firestore, генерируются на стороне клиента, совершенно случайно, и не зависят от коллекции, в которой вы их сгенерировали.
Вы можете убедиться в этом сами, если немного покопаться в (с открытым исходным кодом) SDK. Например, в Android SDK вот источник для CollectionReference.add()
:
final DocumentReference ref = document();
return ref.set(data)
Таким образом, генерация идентификатора оставляет методу document
:
public DocumentReference document() {
return document(Util.autoId());
}
Который делегирует Util.autoId()
:
private static final int AUTO_ID_LENGTH = 20;
private static final String AUTO_ID_ALPHABET =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
private static final Random rand = new Random();
public static String autoId() {
StringBuilder builder = new StringBuilder();
int maxRandom = AUTO_ID_ALPHABET.length();
for (int i = 0; i < AUTO_ID_LENGTH; i++) {
builder.append(AUTO_ID_ALPHABET.charAt(rand.nextInt(maxRandom)));
}
return builder.toString();
}
Как уже говорилось: чисто случайность на стороне клиента с достаточной энтропией для обеспечения глобальной уникальности.