我想从Firebase数据库中获取数据并将其设置在recyclerview
上,但我有一个cardview
模型但问题是即使我添加了模型测试以跳过空模型,recyclerview仍包含空模型,但始终出现该错误,请检查图像以更了解我的问题。
就像您在图片中看到的一样,它是一个空模型,在我的数据库中不存在。
我的recyclerview代码是:
orderAdapter=new FirebaseRecyclerAdapter<Order, Orderviewholder>(personsOptions) {
@Override
protected void onBindViewHolder(@NotNull final Orderviewholder holder, int position, @NotNull Order model) {
if(model!=null){
holder.setTitle("product name:"+model.getName());
imageView10=holder.mView.findViewById(R.id.imageVieworder);
Picasso.get().load(model.getImage()).into(imageView10, new Callback() {
@Override
public void onSuccess() {
ProgressBar progressbar3;
progressbar3=holder.mView.findViewById(R.id.progressBar4);
progressbar3.setVisibility(View.INVISIBLE);
}
@Override
public void onError(Exception e) {
}
});
holder.setdesc(model.getDesc());
holder.setprice(model.getPrice());
holder.setquantity(model.getQuantity());
TextView status;
status=holder.mView.findViewById(R.id.statusorder);
status.setText(model.getStatus());
status.setVisibility(View.VISIBLE);
delorder=holder.mView.findViewById(R.id.orderDelbtn);
delorder.setText("done");
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
delorder.setVisibility(View.VISIBLE);
}
});
model2=model;
delorder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dborder.child(currentUser.getUid()).child(model2.getId()).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NotNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(Client_order.this, "order deleted successfully", Toast.LENGTH_LONG).show();
}
}
});
}
});
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ref=FirebaseDatabase.getInstance().getReference().child("order").child(user_id.toString().trim());
ref2=FirebaseDatabase.getInstance().getReference().child("order").child(user_id.toString().trim()).child("submitted");
ref1=FirebaseDatabase.getInstance().getReference().child("order").child("admin");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NotNull DataSnapshot dataSnapshot) {
for (DataSnapshot orderSnapshot: dataSnapshot.getChildren()) {
Order category = orderSnapshot.getValue(Order.class);
//if (category!=null){
ref1.child(category.getId()).setValue(category);
Toast.makeText(Client_order.this,"product successfully submitted", Toast.LENGTH_LONG).show();
ref2.child(category.getId()).setValue(category);
ref.child(category.getId()).removeValue();
// }
}
}
@Override
public void onCancelled(@NotNull DatabaseError databaseError) {
}
});
}
});
}
}
@NotNull
@Override
public Orderviewholder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.product_list_itemorder, parent, false);
return new Orderviewholder(view);
}
};
orderrv.setAdapter(orderAdapter);
使您的状况像这样
if(model.getName()!=null)