Как я могу получить не ноль для значения статуса в словаре [String: Any], который я получил из своей базы данных Firebase? - PullRequest
0 голосов
/ 27 июня 2018
 self.ref.child("Users").queryOrdered(byChild: "phoneNumber").queryEqual(toValue: self.userMobile).observeSingleEvent(of: .value, with: { snapshot in

 if snapshot.value is NSNull{

    print("Not exists in database")
    self.performSegue(withIdentifier: "segue1", sender: self)
 }

 else{
     // Get user value
     let value = snapshot.value as! [String : Any]

     print(value)
     let status = value["status"] as? Int

     print ("User status is : \(status)")
     if status == 0 {

         self.performSegue(withIdentifier: "segue1", sender: self)
     }                 
     else if status == 1 {                       
         self.performSegue(withIdentifier: "segue2", sender: self)
     }

enter image description here

1 Ответ

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

Это потому, что вы получаете не одного пользователя, а список пользователей (а если у вас только один пользователь, список с одним пользователем).

Итак, сделайте такой цикл:

for user in value.children.allObjects as! [DataSnapshot]
{
    let status = user.childSnapshot(forPath: "status").value as? Int
    print ("User status is : \(status)")
}
...