如何生成Firebase ID?

时间:2015-12-18 17:51:53

标签: firebase

我们可以假设一下吗?它们是全球唯一的(跨所有Firebase)吗?有什么排序吗?客户是否重要?

是否有公共图书馆/文档,所以我也可以生成这些ID?

我指的是push

生成的那些

1 个答案:

答案 0 :(得分:5)

blog post on itas well as a Gist

在博文中,这里是推送ID中的内容的核心:

  

推送ID包含120位信息。前48位是a   时间戳,这两者都减少了碰撞的机会并允许   连续创建推送ID以按时间顺序排序。时间戳   之后是72位随机性,这确保了即使是两位   人们在完全相同的毫秒内创建推送ID是极其重要的   不太可能生成相同的ID。对随机性的一个警告是   这是为了保留客户创建的时间顺序   在同一毫秒内的多个推送ID,我们只是'增加'   随机比特一个。

     

将我们的120位信息(时间戳+随机性)转换为   可以用作Firebase密钥的ID,我们基本上对它进行base64编码   转换为ASCII字符,但我们使用修改后的base64字母表   确保ID在订购时仍能正确排序   按字典顺序排列(因为Firebase键按字典顺序排序)。

另外值得注意的是,社区完成了几种不同语言的端口:

所以也许最好的学习方法是选择一种不在该列表上的语言并移植它!