我正在构建一个需要从某个父节点检索所有子节点的应用程序,并希望对检索到的每个子节点执行方法调用。
这是我当前的数据库:
我想调用一个孩子的所有孩子,conradjr例如“ranniecardino15”,它应该将它存储到一个变量然后执行一个方法调用。我怎样才能做到这一点?
我已经编写了这样的代码,但方法调用“getCurrentLocation”仅在检索到的最后一个孩子上执行。
public void getCurrentChildUser() {
DatabaseReference getuser = FirebaseDatabase.getInstance().getReference().child("Children");
getuser.child(user).orderByChild("CurrentLocation").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
childuser = childSnapshot.getKey();
if (childuser != null){
getCurrentLocation();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public void getCurrentLocation(){
DatabaseReference getuser = FirebaseDatabase.getInstance().getReference().child("Children");
getuser.child(user).child(childuser).child("CurrentLocation").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot != null){
currentloc = dataSnapshot.getValue(String.class);
System.out.println("Current Location: "+currentloc);
String split[] = currentloc.split(",");
lat1 = Double.parseDouble(split[0]);
lng1 = Double.parseDouble(split[1]);
System.out.println("Current Latitude: "+lat1+" and Current Longitude: "+lng1);
getSavedLocation();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}
请帮助我:) 提前致谢:)
忽然笑
相关分类