Swift Firebase FireStore запрос - PullRequest
       4

Swift Firebase FireStore запрос

0 голосов
/ 17 ноября 2018
var selectedColor: String = "pink"
var selectedScore: String = "-"

let pillsRef = db.collection("pills")
    pillsRef
      .whereField("pillColor", isEqualTo: "pink")
      .whereField("pillColor", isEqualTo: "blue")
      .getDocuments() { (querySnapshot, err) in

    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        print("\(document.documentID) => \(document.data())")
    }
}

У меня вопрос к этому коду.

Если я скомпилирую этот код, это будет ошибка.

Я хочу получить данные, содержащие "розовый" или "синий".

Как я могу это сделать?

1 Ответ

0 голосов
/ 17 ноября 2018

Cloud Firestore не поддерживает: логические ИЛИ запросы.В этом случае вы должны создать отдельный запрос для каждого условия ИЛИ и объединить результаты запроса в вашем приложении.

Таким образом, вам нужно выполнить первый запрос для первого цвета, а затем выполнить другой запрос для второгоцвет, а затем объединить результаты:

pillsRef
  .whereField("pillColor", isEqualTo: "pink")
  .getDocuments() { (document, err) in
      if let err = err {
          print("Error getting documents: \(err)")
      } else {
          print("\(document.documentID) => \(document.data())")
          pillsRef.whereField("pillColor", isEqualTo: "blue").getDocuments() { (document2, err2) in
             if let err2 = err2 {
                print("Error getting documents: \(err)")
             } else {
               // here you get your data for blue color 
               print("\(document2.documentID) => \(document2.data())")
             }
         }
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...