Gettimg Error i.e (NullPointException) 'boolean java.lang.String.equals(java.lang.Object)' 在空对象引用上



这是我的logcat

. lang。NullPointerException:尝试在空对象引用上调用虚拟方法'boolean java.lang.String.equals(java.lang.Object)'

at com.chetan.mobchat.Activities.MainActivity$4.onDataChange(MainActivity.java:180)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8218)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)

这是代码

database.getReference () .child("users"。addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
users.clear();
for(DataSnapshot snapshot1 : snapshot.getChildren()) {
User user = snapshot1.getValue(User.class);
if(!user.getUid().equals(FirebaseAuth.getInstance().getUid()))
users.add(user);
}
binding.recyclerView.hideShimmerAdapter();
usersAdapter.notifyDataSetChanged();

}

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

}
});

有谁能帮我解决这个错误吗

错误消息说您试图从空引用对象调用.equals函数。在你的代码中,我能找到的唯一使用.equals的地方是这一行:

if(!user.getUid().equals(FirebaseAuth.getInstance().getUid()))

用户。getUid () .equals是罪魁祸首。user.getUid()必须返回空值。试着找到一些关于这个'user'对象的文档,你可能会有更多的运气。

相关内容