gpt4 book ai didi

javascript - 在 Firestore 中分配增量用户 ID 号

转载 作者:行者123 更新时间:2023-11-30 06:12:55 24 4
gpt4 key购买 nike

我们有一个带有 google firestore 数据库的 vuejs 项目,我们需要为所有用户分配一个唯一的文件编号。它必须是数字,6 位数字,并从 000052 开始。

我们大约有 4500 名用户。

我想使用谷歌云功能。我怎样才能将这个文件编号分配给每个用户,并为每个用户增加更大的文件编号?

我正在尝试使用 firestore 的限制查询来查找以前的用户,然后在当前用户中增加文件 #,等等,但这看起来很笨拙。

db.collection('users').orderBy(id).get()
.then((snapshot) => {
snapshot.forEach(doc => {
let last = snapshot.docs[snapshot.docs.length - 1];
let next = db.collection('users')
.startAfter(last.data().id)
.limit(1)
db.collection('users').doc(next.id).set({
fileId: last.id++
})
})
})

最佳答案

我能想到的几个选项:

  • 您当前的方法可能有效,只要您:

    • 降序 ID 排序,以确保您获得最后/最高的 ID。
    • 使用事务来更新数据库,并使用安全规则来拒绝覆盖现有 ID 的用户。
  • 如果您有一个使用这些 ID 作为文档键的集合,那么保证唯一性可能会更简单,因为根据定义,ID 在其集合中是唯一的。这可以是您当前/主要的集合,也可以是仅跟踪已声明 ID 的辅助集合。在这里,交易+安全规则也是确保唯一性的关键。

  • 或者,您可以只在您的方案中生成一个随机 ID,然后执行与之前方法相同的交易+规则逻辑。

  • 您还可以创建一个文档来保留您给出的最高 ID,然后为每个新用户读取-递增-写入该文档。同样,这需要在事务中完成。这与有多少数据库系统递增其自动增量值非常接近。

关于javascript - 在 Firestore 中分配增量用户 ID 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com