【发布时间】:2015-11-27 11:54:03
【问题描述】:
我在 Firebase 上的数据如下:
"node": {
"node1": {
"value1": value,
"value2": value,
"subSubNode":{
//....values....//
},
},
"node2": { ... },
"node3": { ... }
//...and so on ..//
}
首先:我想从 Firebase 获取所有数据并渲染到我的树中,所以我使用了 addListenerForSingleValueEvent() 函数。
然后:我使用 addChildEventListener() 函数来监听节点或子节点何时更改、删除或添加...
private void getData(Query ref){
ref.addListenerForSingleValueEvent(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
**I render data on my tree here**
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.i(TAG, "onChildAdded");
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Log.i(TAG, "onChildChanged");
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
Log.i(TAG, "onChildRemoved");
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
Log.i(TAG, "onChildMoved");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.i(TAG, "onCancelled");
}
});
}
但 addChildEventListener() 函数中的 onChildAdded() 方法总是先运行。对我有什么想法或解决方案吗?我在那个位置使用 addChildEventListener() 函数是否正确?
【问题讨论】:
标签: android firebase firebase-realtime-database