Ваш код работает нормально - единственная проблема в том, что PersonSnap.value может быть несколькими вещами, поэтому нам нужно сообщить компилятору, что это такое.Этот вопрос предполагает следующую структуру Firebase
your_firebase
users
uid_x
Person: "HelloWorld"
код в закрытии Firebase для чтения, который будет
let PersonID = snapshot.value as! String
if PersonID == "HelloWorld" {
print(PersonID)
} else {
print("the string was not HelloWorld")
}
Обратите внимание, что мы разворачиваем необязательный PersonSnap.value и определяя его как строку.
Также обратите внимание, что варианты принудительного развертывания могут привести к неприятностям, если он равен нулю.Принудительно распаковывайте, только если вы точно знаете, что переменная будет заполнена.Более безопасной альтернативой является guard
guard let myId = snapshot.value as? String else { return }
print(myId)
, и если вы хотите быть супер безопасным и очень стильным, используйте , если позволите
if let thisId = snapshot.value as? String {
if thisId == "HelloWorld" {
print(thisId)
} else {
print("the string was not HelloWorld")
}
}