I am currently trying to use Firebase, Flashlight and Swift to create an search function to retrieve a random object from my realtime database.
I am trying to perform the following query to Firebase at /search/request
var searchSettings : [Any] = []
    if Settings.searchPackage != 99 {
        searchSettings.append(["match" : Settings.searchPackage])
    }
    if Settings.searchCountry != .world {
        if let region = Locale.current.regionCode {
            searchSettings.append(["match" : region])
        }
    }
    if Settings.searchGender != .All {
        searchSettings.append(["match" : Settings.searchGender.rawValue])
    }
    let postData = [
        "index" : "firebase",
        "type" : "test",
        "body" : [
            "query" : searchSettings
        ]
    ] as [String : Any]
    ref.setValue(postData, withCompletionBlock: { (error, reference) in
        if error == nil {
            FIRDatabase.database().reference().child("search/response").child(ref.key).observeSingleEvent(of: .childAdded, with: { (snapshot) in
                if snapshot.exists() {
                    print("found random snapshot based on settings \(snapshot)")
                }
            })
        }
    })
The problem is, as Firebase described in the documentation it does currently support Arrays, therefor the content of "query" will be:
 Flashlight will throw an error because it expects the "query" to contain "match" fields and not the indexes of an array of them.
Flashlight will throw an error because it expects the "query" to contain "match" fields and not the indexes of an array of them.
How would I fix this? I want to be able to search based on multiple fields.
 
     
     
    