[英]Generate Unique Short Number instead of using Doc ID's?
我有一个商业案例,我需要在一个集合中包含一个包含数字字段的文档,该数字字段将比另一个文档的数字字段唯一。 这个数字必须是简短的类型,并且应该是随机的。 例如:2832。现在我知道这无法扩展,因为 4 位数字只能有 10k 个可能的数字组合,但是,目前这很好。
我想知道在 Firebase 中实现这一点的最佳方法。 我正在考虑在 JavaScript 中创建一个 4 位随机数,然后每当生成一个新数字时,对包含一个包含每个唯一数字的数组字段的文档的单独集合进行检查。 如果该号码已经存在,则生成一个新号码并再次检查,如果不存在,则将该唯一号码添加到数组中。
这是最佳方法吗? 谢谢。
好吧,既然您已经愿意维护一个使用过的数字数组,您可以通过使用完整的预随机数组和一个从 0-9999 的简单数字“指针”来消除“重试”因素。
Firestore 确实管理数据争用: https://firebase.google.com/docs/firestore/transaction-data-contention
因此,获取当前指针值并在事务中将其递增将使指针值仅使用一次,并允许您从该指针值 position 的预随机数组中获得有保证的唯一值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.