我正在尝试将图像从Firebase存储加载到imageView,但是什么都没有显示。我正在使用recyler视图,也可以滑动以加载图像。我从4run收到此消息,说“加载失败,大小为[0x0],null类com.bumptech.glide.load.engine.GlideException:收到空模型。“
下面是我的代码,有人可以帮我解决这个问题。
//Adapter class
public class AdapterOne extends RecyclerView.Adapter<AdapterOne.ViewHolder> {
Context context;
List<ImageUploadInfo> MainImageUploadInforList;
public AdapterOne(Context context,List<ImageUploadInfo> TempList){
this.MainImageUploadInforList=TempList;
this.context=context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,parent,false);
ViewHolder viewHolder=new ViewHolder(view);
return viewHolder;
// return null;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
ImageUploadInfo uploadInfo=MainImageUploadInforList.get(position);
//holder.imageNameTextView.setText(uploadInfo.getImageName());
//loading image with glide libary
Glide.with(context).load(uploadInfo.getImageUrl()).into(holder.imageView);
}
@Override
public int getItemCount() {
return MainImageUploadInforList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
//public TextView imageNameTextView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imageView=(ImageView) itemView.findViewById(R.id.imageview);
//imageNameTextView=(TextView) itemView.findViewById(R.id.imagename);
}
}
}
//This class if for information about the image
public class ImageUploadInfo {
public String imageName;
public String imageUrl;
public ImageUploadInfo(){
}
public ImageUploadInfo(String name, String url){
this.imageName=name;
this.imageUrl=url;
}
public String getImageName(){
return imageName;
}
public String getImageUrl(){
return imageUrl;
}
}
//This is the users profile class where all of the images that they download will be displayed
public class ProfileActivity extends AppCompatActivity {
FirebaseAuth firebaseAuth;
TextView name;
DatabaseReference ref;
RecyclerView recyclerView;
AdapterOne adapter1;
RecyclerView.Adapter adapter;
List<ImageUploadInfo> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
overridePendingTransition(R.anim.slide_right, R.anim.slide_left);
recyclerView=findViewById(R.id.recyclerView);
//set size of recykcer view
recyclerView.setHasFixedSize(true);
//setting recyclerview as lineralayout
recyclerView.setLayoutManager(new LinearLayoutManager(ProfileActivity.this));
firebaseAuth=FirebaseAuth.getInstance();
ref= FirebaseDatabase.getInstance().getReference("Users");
//String UID=FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseUser firebaseUser=firebaseAuth.getCurrentUser();
if(firebaseUser!=null){
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Users").child(uid);
DatabaseReference refref = rootRef.child("Users/images").child(uid);
ValueEventListener valueEventListener=new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String txt_firstname = dataSnapshot.child("firstname").getValue(String.class);
Toast.makeText(ProfileActivity.this,"Hi " + txt_firstname,Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
refref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ImageUploadInfo info=dataSnapshot.getValue(ImageUploadInfo.class);
list.add(info);
adapter=new AdapterOne(ProfileActivity.this,list);
recyclerView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
//refref.addListenerForSingleValueEvent(ValueEventListener);
}
else{
Intent i = new Intent(ProfileActivity.this, MainActivity.class);
//i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
}
}
}
您用于获取图像的模型类与图像节点不同。
每个用户
String image_url = dataSnapshot.child("images").getValue().toString;
或根据您在firebase中设置的密钥来更新您的模型。