firebase - Firebase - 生成用户可见的唯一帐户/文档编号
问题描述
当用户在应用程序中生成他/她的文档时,我想分配一个唯一但增量的文档/记录(数据条目,而不是 Firebase 文档)编号。
文档编号应该是唯一的整数/长整数,并且将在用户生成的 PDF 文档中显示为Your document number : 1100xxxxxx
. 最后生成文档的编号将单独存储,因此当新用户生成他/她的文档时,可以轻松选择、递增并分配给用户。
这样我就不必使用排序再次查询数据库以获取最后生成的数字
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query query = rootRef.collection("Users")
.orderBy("DocumentNo", Query.Direction.DESCENDING)
.limit(1);
现在,我通过将 分配user.uid
给 Firebase 文档来生成用户。我想确保生成的证书号的唯一性的原因是它将对用户可见,并且多个用户将同时访问服务器(甚至相同毫秒)。
虽然,我已经看到了几乎所有类似的答案,但我发现的答案与我的想法相似的是this。此外,这个未回答的问题是我应该做的,但它也有问题。
那么,有没有一种方法可以为用户生成一个唯一的文档/记录号?答案不必在 Flutter 中,我主要要逻辑。
解决方案
如果您想在每次发生某些事情时增加一个数字,请执行以下操作:
document.ref.update({unique_value: FieldValue.increment(1)});
该数字将是唯一的。它将与同时访问服务器的多个用户一起使用。
推荐阅读
- c# - How to get IP address of client from controller c# mvc
- css - 两个样式表以相同的特异性针对同一个元素,哪个优先?
- android - React Native Android TextInput 占位符样式未完全更新
- html - 如何在我的导航栏中设置媒体查询以使其具有移动响应能力?
- mysql - MYSQL“第二大部门的员工列表”不是子查询
- ios - 为什么 UIImage(data:) 不以压缩文件大小创建图像?
- intellij-idea - 如何使用 apache velocity 声明测试类的字段变量?
- javascript - if语句实时防止负数
- java - 您如何将 BigInteger 与 for 循环和修改 BigIntegers 一起使用?
- c# - 带有标题和内容的 HttpClient PostAsync c#