Я создаю приложение, которое должно извлечь все дочерние элементы из определенного родительского узла и хотело бы выполнить вызов метода для каждого полученного дочернего элемента.
Вот моя текущая база данных:
Нажмите меня
Я хотел бы назвать всех дочерних элементов 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) {}
});
}
Пожалуйста, помогите мне :) Спасибозаранее:)