@bodusiacool

Может ли значение из Базы Данных выкидывать null потому что не успевает загрузить значение?

Надо получить значение в onCreate из БД, но почему-то выкидывает null все ключи совпадают

БД:
B9VyG.png

Код где все это происходит:
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
         nick1 = findViewById(R.id.Nick);
         email1 = findViewById(R.id.Email);
         avatar1 = findViewById(R.id.avatar);


        DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
        DatabaseReference uidRef = rootRef.child("users").child(getUid());

        Log.i("deecode",getUid());
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String nick = dataSnapshot.child("username").getValue(String.class);
                String email = dataSnapshot.child("account").getValue(String.class);
                String Avatar = dataSnapshot.child("GoogleAvatar").getValue(String.class);
                nick1.setText(nick);
                email1.setText(email);

            }

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

            }
        };
        uidRef.addListenerForSingleValueEvent(valueEventListener);


Получаю данный exception
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference`


Я пытаюсь изменить эти 2 TextView - GreenCools,goshan164@gmail.com
Это отдельный макет nav_header_test.xml

Может ли быть эта ошибка из за этого?

z49BH.png

Вот еще Debug
pa6hE.png
Так выглядит xml который я делаю setContentView
vlPCr.png

activity_test
o0qfxeF.pngITtnBeN.png
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
@bodusiacool Автор вопроса
Так как лежат в отдельном макете надо инициализировать так -
TextView nick1 = navigationView.getHeaderView(0).findViewById(R.id.NickMenuActivity);
        TextView email1 = navigationView.getHeaderView(0).findViewById(R.id.EmailMenuActivity);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Оно же тебе пишет, что текствью null. Проверь, что в разметке activity_test есть текствью с айдишниками, которые ты там ищешь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы