java ViewPager事件在从用户注销时给我错误
我有一个带有LoginActivity和MainActivity的应用程序。
在我的主要活动中,我有三个片段。在其中一个(UsersFragemnt)中,我可以看到所有注册到该应用程序的用户。
这很好,但是当我注销时,我从这个片段中得到了一个错误。
我搜索了一个souluton,发现这是因为即使我去LoginActivity,事件仍在运行,所以它会给我null和error。
解决方法是将(Activity)getContext()
放在事件之前,它起了作用,但现在我突然又遇到了这个错误,它有时有效,有时无效。
有人知道为什么吗
这是我的问题所在:
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)
# 1 楼答案
添加空检查
另外,你也可以在下面添加检查