Я пытаюсь создать уникальный идентификатор для документа в базе данных Firestore. Этот идентификатор является идентификатором сеанса, который должен быть уникальным, генерироваться локально и не содержать длинных символов (как автоматически генерируемый). Я пытаюсь написать код, который проверяет, существует ли документ с таким идентификатором. Если он не устанавливает SessionID, если он существует, случайным образом сгенерируйте другой идентификатор и повторите проверку. Это должно продолжаться до тех пор, пока не существует документа с таким идентификатором, а затем сеанс может быть инициализирован. Проблема в том, что я не могу положить это в какое-то время l oop, так как подключение 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")
}
}