Firebase 自动识别码有通用格式吗?

Firebase 自动识别码有通用格式吗?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,Firestore集合中的Android客户端生成的自动id似乎都符合某些标准: 长度为20个字符 从短跑开始 似乎是根据时间在角色间循环? 关于最后一点,我的意思是,如果创作发生在类似的时间范围内,那么第一个角色将看起来非常相似,例如-LZ..,-L..,-L。。。这描述了 然而,看看这个例子,我假设所有客户机的唯一共同标准是20个字符的长度。这个假设正确吗?您指的是两种类型的ID: 在iOS中调用DatabaseReference.push或childByAutoId时,Firebase实时

Firestore集合中的Android客户端生成的自动id似乎都符合某些标准:

长度为20个字符 从短跑开始 似乎是根据时间在角色间循环? 关于最后一点,我的意思是,如果创作发生在类似的时间范围内,那么第一个角色将看起来非常相似,例如-LZ..,-L..,-L。。。这描述了


然而,看看这个例子,我假设所有客户机的唯一共同标准是20个字符的长度。这个假设正确吗?

您指的是两种类型的ID:

在iOS中调用DatabaseReference.push或childByAutoId时,Firebase实时数据库SDK生成的推送ID。这些都在中描述,可以找到JavaScript实现。 调用add.时由Cloud Firestore SDK生成的身份验证ID。。或者没有参数的文档。这方面的JavaScript实现确实可以在中找到。 这两个id唯一的共同点是,它们的设计确保了足够的熵,使它们实际上是全局唯一的,并且它们都有20个字符长。

对于所有客户端,自动id的长度为20个字符:


您在要点中描述的内容听起来像实时数据库推送ID,而不是Firestore生成的文档ID。你链接到的是Firestore。另外,说明你为什么需要了解这一点可能会很有帮助-你是否计划编写一些依赖于生成这些ID的代码?是的,完全由客户决定对这些ID执行什么操作。服务器不在乎。如果您愿意,您可以生成自己的。我不知道如何使用安全规则将使事情变得更好。它只是一个随机的ID,意味着它足够随机,几乎没有与其他ID发生冲突的机会。安全规则应该依赖于它。事实上,他们不应该。推送ID和其他自动生成的ID应视为不透明标识符。你从他们身上推断出的任何意义,都可能在某个时候被打破。这就是说:如果你想知道实时数据库是如何生成其推送ID的,当前以-L开头,请看否,我指的是flifter的CloudFireStore实现。