Невозможно устранить исключение нулевого указателя в приложении Instagram-CloneJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно устранить исключение нулевого указателя в приложении Instagram-Clone

Сообщение Anonymous »

В методе привязки объявлена ​​следующая функция:

Код: Выделить всё

isLiked(post.getPostId(), holder.like);
noOfLikes(post.getPostId(), holder.noOfLikes);

holder.like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(holder.like.getTag().equals("Like")){
FirebaseDatabase.getInstance().getReference().child("Likes").child(post.getPostId())
.child(firebaseUser.getUid()).setValue(true);
}else{
FirebaseDatabase.getInstance().getReference().child("Likes").child(post.getPostId())
.child(firebaseUser.getUid()).removeValue();
}
}
});
Здесь getUid() выдает NullPointerException, и мне нужно получить действительный идентификатор пользователя, чтобы отображать количество лайков и количество лайков.
Функции объявлены вне метода onBind:

Код: Выделить всё

private void isLiked(String postId, ImageView imageView){
final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Likes").child(postId);

reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.child(firebaseUser.getUid()).exists()){
imageView.setImageResource(R.drawable.liked);
imageView.setTag("liked");
} else {
imageView.setImageResource(R.drawable.like);
imageView.setTag("like");
}
}

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

}
});
}

private void noOfLikes(String postId,TextView text){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Likes").child(postId);

reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
text.setText(dataSnapshot.getChildrenCount() + " likes");
}

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

}
});
}
Помогите мне с проблемой.
LogCat следующей проблемы:

Код: Выделить всё

FATAL EXCEPTION: main
Process: com.example.instagramclone, PID: 8517
java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
at com.google.firebase.database.DatabaseReference.child(DatabaseReference.java:96)
at com.example.instagramclone.Adapter.PostAdapter.isLiked(PostAdapter.java:148)
at com.example.instagramclone.Adapter.PostAdapter.onBindViewHolder(PostAdapter.java:90)
at com.example.instagramclone.Adapter.PostAdapter.onBindViewHolder(PostAdapter.java:32)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
Я согласился получить действительный Uid пользователя, вошедшего в систему.

Подробнее здесь: https://stackoverflow.com/questions/783 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»