ValueEventListener никогда не срабатывает - PullRequest
0 голосов
/ 26 августа 2018

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

ValueEventListener никогда не запускается и продолжает пропускать часть тела.

public SessionListAdapter(FragmentManager fragmentManager) {
    super(fragmentManager);

    mAuth = FirebaseAuth.getInstance();

    FirebaseDatabase myData = FirebaseDatabase.getInstance();
    final DatabaseReference dataUser = myData.getReference().child("Users").child(mAuth.getCurrentUser().getUid());

    dataUser.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.child("type").getValue(String.class).equals("Tutor")) //if(readType.equals("Tutor"))  if user is a Tutor
                user = dataSnapshot.getValue(Tutor.class);
            else
                user = dataSnapshot.getValue(Student.class);
        }

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

Вот необходимая часть моей структуры базы данных.

enter image description here

1 Ответ

0 голосов
/ 26 августа 2018

Вам нужно использовать addListenerForSingleValueEvent, как показано ниже.Я имею в виду эту документацию по Firebase .

dataUser.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
      if(dataSnapshot.child("type").getValue(String.class).equals("Tutor"))
          user = dataSnapshot.getValue(Tutor.class);
      else
          user = dataSnapshot.getValue(Student.class);
  }

  @Override
  public void onCancelled(DatabaseError databaseError) {}
});

Надеюсь, это поможет!

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