Как получить одно поле объекта, хранящегося в базе данных Firebase Realtime с Android - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь получить userName пользователя из базы данных Firebase в реальном времени. Я использую ValueEventListener, и он не работает. Я сохранил данные как Пользователь объекты. Мой пользовательский класс модели имеет геттеры и сеттеры, параметризованные и пустые конструкторы. Пожалуйста помоги. У меня вопрос, что я пропускаю или делаю неправильно.

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

 mDatabaseRef = FirebaseDatabase.getInstance().getReference();
    mDatabaseRef.child("users").child(user_type).child(mUserId).child("personal information").setValue(user);

Это код Я использую для получения данных, но это не работает!

        mFirebaseUser = mFirebaseAuth.getCurrentUser();

        userName = (TextView) findViewById(R.id.userNameHeader);

        //check to see if user is logged in
        if(mFirebaseUser==null){
            //the user is not logged in, start login activity
            loadLogInView();
        }else {
            mUserId = mFirebaseUser.getUid();
            mDatabaseRef = FirebaseDatabase.getInstance().getReference(
                    "users").child("Buyer Account").child(mUserId).child("personal information");

            mDatabaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    User user = dataSnapshot.getValue(User.class);
                    userName.setText(user.getUserName());
                }

                @Override
                public void onCancelled(DatabaseError error) {
                    // Failed to read value
                }
            });

А вот как данные выглядят в базе данных в реальном времени:

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