How do I check if a firebase database value exists?
I'm using the Realtime Database with Google's Firebase, and I'm trying to check if a child exists.
My database is structured as the following
- / (root)
- /users/
–- /james/
-- /jake/
- /rooms/
-- /room1/
--- (room 1 properties)
-- /room2/
--- (room 2 properties)
I would like to check if room1 exists. I have tried the following:
let roomName:String = "room1"
roomsDB.child(roomName).observeSingleEventOfType(.Value) {
(snap:FIRDataSnapshot) in
let roomExists:Bool = snap.value != nil ? "TAKEN" : "NOT TAKEN"
}
In accessing snap.value
it returns a JSON of the properties of that room, but how would I check if the room (/rooms/room1/
) is there to begin with?
Comment if any clarification is needed
Solution 1:
self.ref = FIRDatabase.database().reference()
ref.child("rooms").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.hasChild("room1"){
print("true rooms exist")
}else{
print("false room doesn't exist")
}
})
Solution 2:
While the answer of @ismael33 works, it downloads all the rooms
to check if room1
exists.
The following code accomplishes the same, but then only downloads rooms/room1
to do so:
ref = FIRDatabase.database().reference()
ref.child("rooms/room1").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists(){
print("true rooms exist")
}else{
print("false room doesn't exist")
}
})