angular - 当可能发生冲突时,可以在本地使用 createId() 方法吗?
问题描述
AngularFire2 Firestore 有一个名为的方法createId()
,它会在本地自动生成一个 id。
我打算将它与处理文本以外的图片的表单一起使用。
为了让用户更轻松,一旦他或她上传图片,我将生成一个 Id,用作 Firebase 存储的参考。(所以它与进入数据库的信息有关系)
我认为这很有帮助,因为上传过程发生在用户提交表单之前,就像 gmail 做事的方式一样。您附加一个文件,当它上传时,提交按钮被禁用。只有当百分比为 100 时,该按钮才启用,用户才能将所述信息提交到 Cloud Firestore。
现在我的问题是,如果它生成一个现有的 id 怎么办?它不会替换旧数据吗?(该节点中的项目将有相当多的文档)
那我怎样才能避免这种情况呢?
谢谢阅读!欢迎任何提示:)
解决方案
Firestore 文档的随机 id 生成具有巨大的熵。与先前生成的随机发生碰撞的可能性非常小。如果这还不够好,您可以使用其他一些在唯一 ID 上生成更多熵的库(例如UUID )生成具有更大随机性的自己的唯一 ID 。但我怀疑 Firestore 为您生成的任何内容都会让您满意。
推荐阅读
- typescript - 打字稿中的抽象泛型类
- php - 为什么我不能有两个单独的函数同时返回两个不同的视图?
- r - 数据表中的动态列调用和转换部分按编号部分按名称
- python - python上有两个变量的线性回归
- php - Laravel Horizon - 一个主管运行多个队列
- kubernetes - 为什么 Kubernetes HA 需要奇数个 master
- amazon-web-services - AWS Cognito - 成功注册后获取令牌
- laravel - Laravel - GET请求下载自动注销
- python - 使用 Python 调用带有身份验证的 REST API
- php - 如何在mysql datetime列中存储带有时区信息的时间?