对于我的项目,我需要可以轻松共享的ID,因此firestores默认自动生成的ID将无法使用。
我正在寻找一种自动生成ID的方法,8329423
该ID将在0到9999999范围内递增或随机选择。
Firestore的自动ID字段旨在统计地确保没有两个客户端会生成相同的值。这就是为什么它们要长久的原因:要确保它们中有足够的随机性(熵)。
这使Firestore可以完全在客户端确定这些密钥,而无需在服务器上查找其生成的密钥之前是否已经在其他客户端上生成。而这又具有以下主要优点:
如果这些好处对您的用例很重要,那么您应该强烈考虑是否会创建比Firestore更好的唯一ID。例如,Firestore的ID具有62 ^ 20个唯一值,这就是为什么从统计学上保证它们在很长一段时间内永远不会生成相同值的原因。您建议的0-9999999范围具有1百万个唯一值,这很可能会产生重复值。
如果您确实想要这种ID方案,则需要将已经给出的ID存储在服务器上(可能在Firestore中),以便在生成新密钥时可以对其进行检查。执行此操作的一种非常常见的方法是保留您已经在文档中分发的最后一个ID的计数器。要生成新的唯一ID,您:
由于此读写更新来自多个客户端,因此您需要为其使用事务。还请注意,客户端现在正在协调密钥生成,因此您将遇到可生成的密钥数量的吞吐量限制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句