Java Android中的Firebase完成处理程序
在返回值之前,我尝试先获取所有数据。。。但我在网上找不到有关firebaseoperation的完成处理程序的信息 有人能帮忙吗 我当前的实现不能很好地工作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
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的工作原理,谢谢!