Android Firebase数据库获取特定级别的子项
我在Firebase中有以下数据库结构: 当我启动活动时,在我的应用程序中。我想在活动启动时只获取一次所有Android Firebase数据库获取特定级别的子项,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我在Firebase中有以下数据库结构: 当我启动活动时,在我的应用程序中。我想在活动启动时只获取一次所有level0Node的节点。我实现的目标如下: rootNode.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Iterable&l
level0Node
的节点。我实现的目标如下:
rootNode.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
rootNode.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
rootNode.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable level0Nodes=dataSnapshot.getChildren();
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
});
但我面临的问题是,如果
level1Node
上发生任何更新,则会再次调用onDataChanged
,这是我不希望看到的。如何实现这一点?您正在寻找一个SingleValueListener
将您的ValueEventListener
替换为一个,代码如下所示:
rootNode.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
rootNode.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
rootNode.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable level0Nodes=dataSnapshot.getChildren();
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
});
有关更多信息,请参阅您有两种方法可以一次性从特定参考中获取总数据