У меня есть следующий запрос Firebase, в котором я проверяю, существует ли уже имя пользователя в базе данных. Я хотел бы присвоить логическое значение (true) переменной с именем usernameAlreadyExists. Однако мне нужно получить доступ к этой переменной с ее новым значением вне замыкания. Я читал, что мне нужно реализовать завершениеHandler или обратный вызов, чтобы сделать это. Однако я не знаю, как реализовать это в синтаксисе запроса Firebase:
var usernameAlreadyExists = false
FIRDatabase.database().reference().child("usernames").queryOrderedByValue().queryEqual(toValue: self.username.text).queryLimited(toFirst: 1).observe(.childAdded, with: { snapshot in
// Username unavailable, chose another one
self.invalidUsernameMsg.text = "This username already exists, please choose another one."
print(snapshot)
print(snapshot.value)
usernameAlreadyExists = true
})
print(usernameAlreadyExists)
print(usernameAlreadyExists) --> Я хочу, чтобы эта строка выводила "true", но она печатает "false", потому что приведенный выше код выполняется асинхронно.
Любая помощь более чем приветствуется. Благодарю вас!