Насколько уникален идентификатор документа Firestore? Учитывая более миллиона документов - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь получить автоматически сгенерированный идентификатор из объекта DocumentReference

DocumentReference docref = db.collection("users").document(); 
String ID = check.getID();

Вопрос заключается в том, что, поскольку идентификаторы генерируются на стороне клиента, могут быть шансы, что 2 идентификатора в FireStore похожи на каждый другие, когда их в коллекции более миллиона, и когда я использую .set (), документ обновляется. Я видел другой ответ, но никто не решил мои сомнения.

1 Ответ

1 голос
/ 10 апреля 2020

На момент написания Auto ID Firestore (по крайней мере, в JavaScript SDK ) состоит из 20 случайных символов, выбранных из символов a-z, A-Z и 0-9 - поэтому 20 символов выбраны из 62 возможных символов.

Это означает, что существует 62^20 (или 7.01e35) различных возможных комбинаций.

Это очень похоже на 2^120 возможное комбинации, используемые в База данных реального времени (которые также используют символы - и _ для 64^20 возможных комбинаций).

Основное различие между идентификаторами Pu sh RTDB и Автоматические идентификаторы Firestore заключаются в том, что автоматические идентификаторы не кодируются в соответствии с меткой времени устройства - все ~ 120 битов являются случайными.

Таким образом, статистически очень маловероятно, что вы столкнетесь со столкновением. Но вы всегда можете использовать свою собственную систему для генерации собственных идентификаторов или использовать какой-либо дополнительный пакет uuid для генерации 128-битного или большего идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...