首页 > 解决方案 > 当可能发生冲突时,可以在本地使用 createId() 方法吗?

问题描述

AngularFire2 Firestore 有一个名为的方法createId(),它会在本地自动生成一个 id。

我打算将它与处理文本以外的图片的表单一起使用。

为了让用户更轻松,一旦他或她上传图片,我将生成一个 Id,用作 Firebase 存储的参考。(所以它与进入数据库的信息有关系)

我认为这很有帮助,因为上传过程发生用户提交表单之前,就像 gmail 做事的方式一样。您附加一个文件,当它上传时,提交按钮被禁用。只有当百分比为 100 时,该按钮才启用,用户才能将所述信息提交到 Cloud Firestore。

现在我的问题是,如果它生成一个现有的 id 怎么办?它不会替换旧数据吗?(该节点中的项目将有相当的文档)

那我怎样才能避免这种情况呢?

谢谢阅读!欢迎任何提示:)

标签: angularfirebasegoogle-cloud-firestoreangularfire2

解决方案


Firestore 文档的随机 id 生成具有巨大的熵。与先前生成的随机发生碰撞的可能性非常小。如果这还不够好,您可以使用其他一些在唯一 ID 上生成更多熵的库(例如UUID )生成具有更大随机性的自己的唯一 ID 。但我怀疑 Firestore 为您生成的任何内容都会让您满意。


推荐阅读