I am trying to get all the entries where createdAt is equal to Today, but it returns nothing.
What am I doing wrong here? And, what is the proper way to query data the way I am trying to do?
JSON:
    {
      "thoughts" : {
        "-KWGdcdZD8QJSLx6rSy8" : {
          "createdAt" : "Tomorrow",
          "thought" : "meno",
          "user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
        },
        "-KWGeGivZl0dH7Ca4kN3" : {
          "createdAt" : "Today",
          "thought" : "meno",
          "user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
        },
        "-KWGeIvWHBga0VQazmEH" : {
          "createdAt" : "Yesterday",
          "thought" : "meno",
          "user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
        }
      }
    }
Swift:
    let db = FIRDatabase.database().reference().child("thoughts")
    let ref = db.queryEqual(toValue: "Today", childKey: "createdAt")
    ref.observe(.value, with:{ (snapshot: FIRDataSnapshot) in
        for snap in snapshot.children {
            print((snap as! FIRDataSnapshot).key)
        }
    })
                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)
    }
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With