I'm implementing Firebase java sdk for a backend. I thought by listening to firebase change event that the program should stay open but it doesn't
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference(config.getFirebase().getIncomingPath());
ref.limitToFirst(1).addChildEventListener( new ChildEventListener() {
@Override
public void onChildRemoved(DataSnapshot snapshot) {
}
@Override
public void onChildMoved(DataSnapshot snapshot, String arg1) {
}
@Override
public void onChildChanged(DataSnapshot snapshot, String arg1) {
}
@Override
public void onChildAdded(DataSnapshot snapshot, String arg1) {
System.out.println(snapshot);
}
@Override
public void onCancelled(DatabaseError arg0) {
System.err.println("done");
}
});
When doing this the program terminates even if there are data in the paths.
I have to do something like this to keep the program alive.
Thread someThread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
}
}
});
someThread.start();
Is there something in the SDK that I have missed?