Я не могу запросить Firestore используя UIPickerView с 3 вариантами - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь запросить Firestore, используя UIPickerView с 3 полями, но ничего не отображается.Если я закомментирую 2 поля и выполню запрос, я получу результаты.Любая идея, что я пропускаю или делаю неправильно.Пожалуйста помоги.

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
 if hospNameField.isFirstResponder {
     let itemselected = hospt[row]
     hospNameField.text = itemselected
 } else if teamNameField.isFirstResponder {
     let itemselected = team[row]
     teamNameField.text = itemselected
 } else if mdNameField.isFirstResponder {
     let itemselected = assignedmd[row]
     mdNameField.text = itemselected
 }

}

 @IBAction func getData(_ sender: Any) {
 if HOSP != (hospNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("hosp", isEqualTo: (hospNameField.text!))
 } else if TEAM != (teamNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("team", isEqualTo: (teamNameField.text!))
 } else if ASSIGNEDMD != (mdNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("assignedmd", isEqualTo: (mdNameField.text!))
     query.getDocuments { (snapshot, error) in
         if let err = error {
             debugPrint("error getting data: \(err)")
         } else {
             for document in (snapshot?.documents)! {
                 print(document.data())
             }

1 Ответ

1 голос
/ 11 июня 2019

Я думаю, что вам не хватает скобки. если вы выполняете запрос, вы выполняете только третий оператор if. Вы должны закрыть последний оператор if, а затем выполнить запрос.

Попробуйте это:

   @IBAction func getData(_ sender: Any) {
 if HOSP != (hospNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("hosp", isEqualTo: (hospNameField.text!))
 } else if TEAM != (teamNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("team", isEqualTo: (teamNameField.text!))
 } else if ASSIGNEDMD != (mdNameField.text!) {
     query = Firestore.firestore().collection(PTLIST_REF).whereField("assignedmd", isEqualTo: (mdNameField.text!))
}
     query.getDocuments { (snapshot, error) in
         if let err = error {
             debugPrint("error getting data: \(err)")
         } else {
             for document in (snapshot?.documents)! {
                 print(document.data())
             }
           }
       }
}
...