1

I try to get first all my data, before I return my values... But I can't find on the internet something about completion handler for the firebaseoperation.

Can somebody help?

My current implementation doesn't work well....

public List<ExampleClass> GetAllExamples() {
  Query examplequery = db.child("example");
  exampleList = new ArrayList<ExampleClass>();

  examplequery.addChildEventListener(new ChildEventListener() {

    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
      String value = getValue(dataSnapshot.getValue().toString());
      String key = dataSnapshot.getKey();
      ExampleClass ex = new Country(key, value);
      exampleList.add(ex);
    }

    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {

    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {

    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
  });

  return exampleList;
}
ישו אוהב אותך
  • 28,609
  • 11
  • 78
  • 96
Archimedes
  • 231
  • 1
  • 2
  • 13

1 Answers1

1

With the help of Frank I found a proper solution

examplequery.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // do something after data is synchronized
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });
Archimedes
  • 231
  • 1
  • 2
  • 13