Чтение дочерних значений из базы данных - PullRequest
0 голосов
/ 15 апреля 2019

Я хочу получить только одну информацию из базы данных. Сделано много усилий, но не удалось структура данных моей пожарной базы выглядит следующим образом

enter image description here

и пробую что-то подобное в моем коде

        DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
    myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String email = dataSnapshot.getValue(String.class);
            //do what you want with the email
            setDisplayName.setText(email);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            setDisplayName.setText("data not get" + databaseError );
        }
    });

1 Ответ

0 голосов
/ 16 апреля 2019

Если вы хотите получить только электронное письмо, вы можете сделать что-то вроде этого:

   DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String email = dataSnapshot.child("email").getValue().toString();
        //do what you want with the email
        setDisplayName.setText(email);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        setDisplayName.setText("data not get" + databaseError );
    }
});

Если вы не хотите загружать другие данные, вы можете напрямую запросить электронное письмо следующим образом:

 DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID").child("email");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String email = dataSnapshot.getValue().toString();
        //do what you want with the email
        setDisplayName.setText(email);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        setDisplayName.setText("data not get" + databaseError );
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...