Firebase извлекает нужные данные - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу получить адреса электронной почты всех дочерних узлов, но когда я выполняю следующую команду, она показывает только адрес электронной почты последнего дочернего узла.Вот данные из Firebase:

data

, а вот код, который я использовал для получения данных:

FirebaseDatabase.getInstance().getReference("user")
    .addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            //user userr = snapshot.getValue(user.class);
            //System.out.println(userr.email);
            String c=snapshot.child("email").getValue().toString();
            String longi=snapshot.child("longitude").getValue().toString();
            String latt=snapshot.child("email").getValue().toString();

            Toast.makeText(getApplicationContext(),c+" "+longi+" "+latt,Toast.LENGTH_SHORT).show();
            //  Toast.makeText(getApplicationContext(),"sadjsakdn",Toast.LENGTH_SHORT).show();

            //        User user = snapshot.getValue(User.class);
            //System.out.println(user.email);
        }
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(),"errorrrr",Toast.LENGTH_SHORT).show();
    }
});

1 Ответ

0 голосов
/ 10 декабря 2018

Попробуйте следующее:

FirebaseDatabase.getInstance().getReference().child("user").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Iterable<DataSnapshot> children = dataSnapshot.getChildren();

            for (DataSnapshot child : children) {
                User value = child.getValue(User.class);

                if (value != null) {
                    Toast.makeText(MainActivity.this, "List of emails: " + value.getEmail(), Toast.LENGTH_SHORT).show();
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

А класс User является базовым классом POJO:

public class User {
public String name,email,password,userType;
public int lattitude,longitude;

public String getEmail() {
    return name;
}

public void setEmail(String name) {
    this.name = name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...