Querying Firebase with Swift 3.0

You need to use queryOrderedByChild to createdAt and than use equalTo Today

let ref = FIRDatabase.database().reference().child("thoughts").queryOrdered(byChild: "createdAt").queryEqual(toValue : "Today")

ref.observe(.value, with:{ (snapshot: FIRDataSnapshot) in
    for snap in snapshot.children {
        print((snap as! FIRDataSnapshot).key)
    }
})

This is my solution for this JSON:

JSON:

{
  "users" : {
    "-KWGdcdZD8QJSLx6rSy8" : {
      "name" : "dummy1",
      "visibility" : true
    },
    "-KWGeGivZl0dH7Ca4kN3" : {
      "name" : "dummy2",
      "visibility" : false
    },
    "-KWGeIvWHBga0VQazmEH" : {
      "name" : "dummy3",
      "visibility" : true
    }
  }
}

SWIFT:

//Fetch only Childs with attribute "visibility" = true

Database.database().reference().child("users").queryOrdered(byChild: "visibility").queryEqual(toValue: true).observeSingleEvent(of: .value, with: { (snapshot) in


        guard let dictionary = snapshot.value as? [String:Any] else {return}

        dictionary.forEach({ (key , value) in

            print("Key \(key), value \(value) ")


        })



    }) { (Error) in

        print("Failed to fetch: ", Error)

    }