首页 > 解决方案 > 如何检查 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")

            }
    }

标签: swiftgoogle-cloud-firestore

解决方案


推荐阅读