получить данные текущего пользователя. из firebase вернуть ноль - PullRequest
0 голосов
/ 04 февраля 2020

Здравствуйте. Я пытаюсь получить данные из поля базы данных в реальном времени, но оно возвращает ноль. Я проверил с textView52.setText (firebaseUser.getEmail ()); чтобы увидеть, действительно ли это было связано, и это работает. проблема в восстановлении значения из базы данных, которая в этом случае является полем "имя", может кто-нибудь мне помочь? Я делаю что-то неправильно? любая помощь приветствуется.

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
    ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String userUid = user.getUid();
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String data = dataSnapshot.child("name").getValue(String.class);
            textView52.setText(data);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

}

enter image description here

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

попробуй

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userUid = user.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String data = dataSnapshot.child("name").getValue();
        textView52.setText(data);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});}
0 голосов
/ 04 февраля 2020

ОБНОВЛЕНО! отметьте эти строки

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {...}

По сути, вы пытаетесь вызвать в Users другого ребенка по имени User, чтобы понять очень просто, замените здесь этого пользователя

ref.child("use_that_key_here").addListenerForSingleValueEvent(new ValueEventListener() {...}

Это не решение, вы не может жестко закодировать каждую клавишу, но с этим вы должны увидеть данные

попробуйте что-то вроде этого:

// ref to db
DatabaseReference ref= FirebaseDatabase.getInstance();
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
       //debug this par and check if you can see your user
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...