Когда вы используете следующую строку кода:
var newCityRef = db.collection("cities").doc();
Без передачи какого-либо параметра в функцию doc()
это означает, что вы создаете уникальную ссылку на документ в вашей коллекции cities
. Столкновения идентификаторов в этом случае невероятно маловероятны. Вот для чего были созданы идентификаторы документов. Так что вам не нужно беспокоиться об этом.
Но обратите внимание, идентификаторы документов Firestore должны быть уникальными в пределах одной коллекции. Они могут быть продублированы в других коллекциях или вложенных коллекциях. Вы можете проверить эту функцию самостоятельно.
Поэтому, пожалуйста, помните, что встроенный генератор уникальных идентификаторов, который используется в Firestore при вызове функции add () CollectionReference или функции doc () CollectionReference, не пропуская никакой параметров, генерирует случайные и крайне непредсказуемые идентификаторы, что предотвращает попадание в определенные горячие точки в серверной инфраструктуре.
Все автоматически сгенерированные идентификаторы документов являются случайными, и вероятность их столкновения практически отсутствует. Клиентский SDK генерирует документ из 20 символов, каждый из которых позволяет:
- Все строчные буквы
- Все заглавные буквы
- Все цифры
Таким образом, существует в общей сложности (26 + 26 + 10) ^ 20 = 7.0e35 возможных комбинаций возможных уникальных идентификаторов, и вы можете / должны предполагать, что они будут полностью уникальными.