They do almost the same thing, although ChildEventListener can sometimes be more flexible: ChildEventListener you can specify different behavior for 4 actions ( onChildAdded , onChildChanged , onChildMoved and onChildRemoved ), and ValueEventListener provides only onDataChanged .
Also, the ChildEventListener provides DataSnapshots (immutable copies of the data) at the child location, and the ValueEventListener provides the DataSnapshot of the whole node.
Margarita Litkevych
source share