在返回值之前,我尝试先获取所有数据...但是我在互联网上找不到有关火力基地操作的完成处理程序的信息。
有人可以帮忙吗?
我目前的实现效果不佳....
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;
}
在弗兰克的帮助下,我找到了合适的解决方案
examplequery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// do something after data is synchronized
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});