Не удалось проверить, равен ли результат запроса нулю - PullRequest
0 голосов
/ 16 марта 2020

У меня есть запрос, который проверяет, существует ли phoneNumber в дочерних "посетителях". Если phoneNumber существует, он добавляет ключ дочернего элемента в переменную visitorID
. Если visitorID != "", я получаю код для выполнения того, что хочу, но когда visitorID == "", я не могу заставить код сделать что-либо. Вот мои лучшие усилия:

ref?.child("visitors").queryOrdered(byChild: "phoneNumber").queryEqual(toValue: phoneNumber).observeSingleEvent(of: .value, with: { (snapShot) in

   if let snapDict = snapShot.value as? [String:AnyObject]{
       var visitorID = String()        
       for each in snapDict{
           let key  = each.key as! String               
           visitorID = key    
       }

       if visitorID != "" {        
           //Do something       
       } else {         
           //Do something else        
       }    
   }    
}, withCancel: {(Err) in
    print(Err.localizedDescription)
})

1 Ответ

1 голос
/ 16 марта 2020

Если вы хотите выполнить запрос и определить, есть ли какие-либо результаты, то вам нужен snapshot.exists

ref?.child("visitors").queryOrdered(byChild: "phoneNumber").queryEqual(toValue: phoneNumber).observeSingleEvent(of: .value, with: { (snapshot) in

   if snapshot.exists() {
      print("found at least one")
      //do something with snapshot
   } else {
      print("non found, returning")
      return
   }

}, withCancel: {(Err) in
    print(Err.localizedDescription)
})

или

ref?.child("visitors").queryOrdered(byChild: "phoneNumber").queryEqual(toValue: phoneNumber).observeSingleEvent(of: .value, with: { (snapshot) in

   if snapshot.exists() == false {
      print("none found, returning")
      return
   }
   //do something with snapshot
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...