Java Android中的Firebase完成处理程序

Java Android中的Firebase完成处理程序,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,在返回值之前,我尝试先获取所有数据。。。但我在网上找不到有关firebaseoperation的完成处理程序的信息 有人能帮忙吗 我当前的实现不能很好地工作 public List<ExampleClass> GetAllExamples() { Query examplequery = db.child("example"); exampleList = new ArrayList<ExampleClass>(); examplequery.addChil

在返回值之前,我尝试先获取所有数据。。。但我在网上找不到有关firebaseoperation的完成处理程序的信息

有人能帮忙吗

我当前的实现不能很好地工作

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;
}
public List GetAllExamples(){
queryexamplequery=db.child(“示例”);
exampleList=新的ArrayList();
examplequery.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
字符串值=getValue(dataSnapshot.getValue().toString());
String key=dataSnapshot.getKey();
ExampleClass ex=新国家/地区(键、值);
示例列表。添加(例如);
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
返回示例列表;
}

在弗兰克的帮助下,我找到了一个合适的解决方案

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

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

何时调用此“完成处理程序”?当查询完成时,数据库会在某个位置同步数据,因此查询永远不会真正完成。如果您希望检测初始数据何时被同步,请参阅@FrankvanPuffelen的工作原理,谢谢!