in firestore/FirestoreExample/RestaurantsTableViewController.swift [280:310]
func query(withCategory category: String?, city: String?, price: Int?, sortBy: String?) -> Query {
var filtered = baseQuery()
if category == nil, city == nil, price == nil, sortBy == nil {
stackViewHeightConstraint.constant = 0
activeFiltersStackView.isHidden = true
} else {
stackViewHeightConstraint.constant = 44
activeFiltersStackView.isHidden = false
}
// Advanced queries
if let category = category, !category.isEmpty {
filtered = filtered.whereField("category", isEqualTo: category)
}
if let city = city, !city.isEmpty {
filtered = filtered.whereField("city", isEqualTo: city)
}
if let price = price {
filtered = filtered.whereField("price", isEqualTo: price)
}
if let sortBy = sortBy, !sortBy.isEmpty {
filtered = filtered.order(by: sortBy)
}
return filtered
}