У меня есть приложение с LoginActivity и MainActivity.
и в моей MainActivity у меня есть три фрагмента. В одном из них (UsersFragemnt) я вижу всех пользователей, которые зарегистрировались в приложении.
Это работает нормально, но когда я выхожу, я получаю ошибку из этого фрагмента.
Я искал souluton и обнаружил, что это происходит потому, что событие все еще работает, даже когда я захожу в LoginActivity, поэтому оно дает мне ноль и ошибку.
Задумка заключалась в том, чтобы поставить (Activity)getContext()
перед событием, и это сработало, но теперь, как ни странно, я снова получаю эту ошибку, и иногда она работает, а иногда нет.
Кто-нибудь знает почему?
Это мой UsersFragemnt
, где проблема происходит:
public void onStart() {
super.onStart();
usersList.clear();
mFiresrote.collection("Users").addSnapshotListener((Activity)getContext(),new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
String user_id = doc.getDocument().getId();
Users users = doc.getDocument().toObject(Users.class).withId(user_id);
usersList.add(users);
usersRecyclerAdapter.notifyDataSetChanged();
мой ProfileFragemnt
код (где кнопка выхода из системы)
mLogoutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mAuth.signOut();
Intent loginIntent = new Intent(container.getContext(),LoginActivity.class);
startActivity(loginIntent);
и это моя ошибка:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.google.firebase.firestore.QuerySnapshot.getDocumentChanges()' on a null object reference
at dim.aviv.projectldogma.UsersFragment$1.onEvent(UsersFragment.java:75)
at dim.aviv.projectldogma.UsersFragment$1.onEvent(UsersFragment.java:71)