swift - 如何检查 Firestore 数据库中是否不存在本地创建的 ID,如果存在,请重新生成 ID 并重试,直到 Document 不存在
问题描述
我正在尝试为 Firestore 数据库中的文档创建唯一标识符。这个 id 是一个会话 ID,它需要是唯一的、本地生成的并且不是很长的字符(如自动生成的)。我正在尝试编写代码来检查具有该 ID 的文档是否已经存在。如果不存在则设置 SessionID,如果存在则随机生成另一个 ID 并再次执行检查。这应该循环继续,直到不存在具有该 ID 的文档,然后会话可以初始化。问题是我不能把它放在一个 while 循环中,因为 Firebase 连接无法处理这个问题。有没有人有任何建议或其他方式来实现相同的目标?先感谢您。
func setsessionid () {
sessionid = randomAlphaNumericString(length: 6)
let docRef = self.db.collection("strokedata").document(self.sessionid!)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
} else {
let currentsession = self.sessionid!
self.sessionID.text = "SESSION ID: \(currentsession)"
let user = Auth.auth().currentUser
if let user = user {
self.userid = user.uid
}
print("Document does not exist")
}
}
解决方案
推荐阅读
- docker - Burp 套件:无法拦截来自 docker 映像应用程序的流量
- java - 调整大小时JComponent消失?
- sql - 比较 ROW COUNT 的结果
- laravel - 为什么 Laravel 给出错误的结果查询?
- mysql - MySQL中的一个查询中的嵌套列表
- php - 尝试使用存储获取大小时未找到图像错误
- javascript - 如何在 ReactJs 中使用 OnClick 内部地图功能获取 DOM 元素 id
- c# - 抑制 DNN 中的默认 XFrameOptions
- html - 将弹性项目设置为 100% 高度
- python-3.x - PiZero W 连接到 (GPIO):如何在 Mac OS X 上使用 GPIO 输入模拟 PiZero