Не удается отфильтровать данные в Firestore - PullRequest
1 голос
/ 09 июня 2019

Я пытаюсь отфильтровать данные в Firestore, и когда я печатаю информацию в консоль, я получаю все документы.База данных Firestore имеет следующую структуру:

/Collection
   /auto-doc ID
        / hosp : "hosp1"
          team : "team1"
          (there are more fields in every document)

Для целей тестирования у меня есть только шесть документов, и у двух из них есть поле, которое я хочу отфильтровать и распечатать на консоли (hosp1).

@IBAction func getData2(_ sender: Any) {

    if HOSP != "hosp1" {
        query = Firestore.firestore().collection(PTLIST_REF).whereField("hosp", isEqualTo: "hosp1")
        ptListCollectionRef.getDocuments { (snapshot, error) in
            if let err = error {
                debugPrint("error getting data: \(err)")
            }
            else {
                for document in (snapshot?.documents)! {
                    print(document.data())
                }
            }

1 Ответ

2 голосов
/ 09 июня 2019

Вы получаете все документы, потому что вы вызываете функции getDocuments() по ссылке на коллекцию, а не по запросу. Другими словами, вы вообще не применяете никаких фильтров. Чтобы иметь возможность фильтровать ваши данные, измените следующую строку кода:

ptListCollectionRef.getDocuments {/* ... */}

до

query.getDocuments {/* ... */}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...