Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Firebase-Java中迭代子级_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

如何在Firebase-Java中迭代子级

如何在Firebase-Java中迭代子级,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想迭代Firebase实时数据库节点中的子节点 这是我的数据库结构。 这是我的密码。 DatabaseReference RedLineRouteReference=FirebaseDatabase.getInstance().getReference().child(“RedLineRoute”); RedLineRouteReference.addValueEventListener(新的ValueEventListener(){ @凌驾 public void onDataChange

我想迭代Firebase实时数据库节点中的子节点

这是我的数据库结构。

这是我的密码。 DatabaseReference RedLineRouteReference=FirebaseDatabase.getInstance().getReference().child(“RedLineRoute”); RedLineRouteReference.addValueEventListener(新的ValueEventListener(){ @凌驾 public void onDataChange(@NonNull DataSnapshot DataSnapshot){ 迭代器i=dataSnapshot.getChildren().Iterator(); 如果(真){ Toast.makeText(timeline.this,i.next().toString(),Toast.LENGTH_SHORT).show(); } } @凌驾 已取消的公共void(@NonNull DatabaseError DatabaseError){ } }); 此程序输出 但是,我想隔离每个迭代(每个子迭代)


例如,我想定义第二个子项和第三个子项等等…

在Java中处理Iterable的方法是使用一个简单的for循环:

for(DataSnapshot子级:DataSnapshot.getChildren()){
String key=child.getKey();
字符串值=child.getValue().toString();
//用key和value做你想做的事
}

例如,我将如何获得第一个和第二个孩子?使用Child()按名称调用他们。如果您是使用DataSnapshot的新手,应该通读文档。我会接受你的回答,但我真正想知道的是,如何在不知道每个孩子的钥匙的情况下隔离和单独给每个孩子打电话你需要知道孩子的名字才能接近他们。如果你不知道它们的名字,你可以像我所展示的那样迭代它们来发现它们。把它想象成一个散列图。您可以通过项的键获取项,也可以迭代所有项。如果你不知道你要找的东西,那是个问题。好吧,我明白。我在开头展示的firebase数据库中有一个路由/线路,管理员应该会改变它,所以路由会改变,我想调用该数据并根据子节点的位置设置条件
I/TimeTable: DataSnapshot { key = aMaison, value = true }