Хотя ответ Гастона Сайлена на 100% верен в отношении нажатой клавиши из базы данных Firebase в реальном времени, я постараюсь добавить еще несколько деталей.
При использовании метода push () DatabaseReference *1004*, он генерирует ключ, который имеет временную составляющую, поэтому теоретически два события могут происходить в течение одной миллисекунды, но существует астрономически малая вероятность того, что два пользователя смогут сгенерировать ключ в один и тот же момент и с одинаковой случайностью.Также обратите внимание, что эти ключи генерируются полностью на клиенте без консультации с сервером Firebase.Если вам интересно, вот алгоритм , который генерирует эти ключи .В конце я могу сказать вам, что я не слышал о человеке, который до сих пор сообщал о проблеме с коллизиями ключей.
Так что в отличие от ключей базы данных Fireabase в реальном времени, идентификаторы Cloud Firestore фактически являются случайными.Там нет времени компонент включен.Этот встроенный генератор уникальных идентификаторов, который используется в Firestore при вызове методов add () CollectionReference или метода document () CollectionReference без передачи каких-либо параметров, генерирует случайные и крайне непредсказуемые идентификаторы, что предотвращает попадание в определенные горячие точки в серверной инфраструктуре.Это также причина, по которой нет порядка, если вы проверяете документы в коллекции в консоли Firebase.Столкновения идентификаторов в этом случае невероятно маловероятны, и вы можете / должны предположить, что они будут полностью уникальными.Вот для чего они были созданы.Что касается алгоритма, вы можете проверить ответ Фрэнка ван Пуффелена из этого поста .Так что вам не нужно беспокоиться об этих идентификаторах.