Как сравнить снимки базы данных Firebase с текстом? - PullRequest
0 голосов
/ 10 июня 2018

Я пишу приложение в Swift с помощью Firebase.Как сравнить снимок базы данных Firebase с чем-то другим?Для людей, которые меня не понимают, вот пример:

Database.database().reference().child("users").child((Auth.auth().currentUser?.uid)!).child("Person").observeSingleEvent(of: .value) { (PersonSnap) in
let PersonID = PersonSnap.value

if PersonID == "HelloWorld" {
//Code
}
  }

Как мне сделать эту if PersonID == "HelloWorld" часть?

1 Ответ

0 голосов
/ 10 июня 2018

Ваш код работает нормально - единственная проблема в том, что 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")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...