addValueEventListener
gives all the data whenever something changed in the database, due to this I have implemented addChildEventListener
to get the only new item when there is a something new in the database.
Currently, the problem I am facing is whenever I open app, addChildEventListener
fetch all the item one by one in onChildAdded
method.
Is there any way that I can fetch only new items in Firebase Realtime Database? Here is my code:
mDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
News news = dataSnapshot.getValue(News.class);
Log.i("YES-onChildAdded", news.getId()+"/"+news.getHeadline());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
News news = dataSnapshot.getValue(News.class);
Log.i("YES-onChildChanged", news.getId()+"/"+news.getHeadline());
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
News news = dataSnapshot.getValue(News.class);
Log.i("YES-onChildRemoved", news.getId()+"/"+news.getHeadline());
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
News news = dataSnapshot.getValue(News.class);
Log.i("YES-onChildMoved", news.getId()+"/"+news.getHeadline());
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("YES-Cancelled", databaseError.getMessage());
}
});