Android 使用FirebaseUI从Firebase数据库加载图像

Android 使用FirebaseUI从Firebase数据库加载图像,android,firebase-realtime-database,firebase-storage,android-glide,Android,Firebase Realtime Database,Firebase Storage,Android Glide,我目前无法加载已上载到Firebase存储并将URL保存到Firebase数据库的图像。我正在使用Firebase UI和Glide库加载图像。我找到了,下面是我的代码: Query query = FirebaseDatabase.getInstance() .getReference() .child("Students") .limitToLast(50); FirebaseRecyclerOptions&

我目前无法加载已上载到Firebase存储并将URL保存到Firebase数据库的图像。我正在使用Firebase UI和Glide库加载图像。我找到了,下面是我的代码:

 Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("Students")
            .limitToLast(50);

    FirebaseRecyclerOptions<Students> options =
            new FirebaseRecyclerOptions.Builder<Students>()
                    .setQuery(query, Students.class)
                    .build();

    FirebaseAdapter = new FirebaseRecyclerAdapter<Students, StudentsHolder>(options) {
        @NonNull
        @Override
        public StudentsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_students, parent, false);
            return new StudentsHolder(view);
        }
        @Override
        protected void onBindViewHolder(@NonNull StudentsHolder holder, int position, @NonNull final Students model) {
            holder.setName(model.getName());
            holder.setPrice(model.getPrice());
            holder.setImage(model.getImages(), getApplicationContext());
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(getApplicationContext(), model.getName(), Toast.LENGTH_SHORT).show();
                }
            });
        }
    };
    mRecycerView.setAdapter(FirebaseAdapter);
}

这是StudentsHolder.class:

public class StudentsHolder extends RecyclerView.ViewHolder {

TextView nameTV;
TextView priceTV;
ImageView imageIV;

public StudentsHolder(View itemView) {
    super(itemView);
    nameTV = itemView.findViewById(R.id.name);
    priceTV = itemView.findViewById(R.id.price);
    imageIV = itemView.findViewById(R.id.image);
}


public void setName(String studentName) {
    nameTV.setText(studentName);
}

public void setPrice(String studentPrice) {
    priceTV.setText(studentPrice);
}

public void setImages(String image, Context context) {
    StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("Students").child(24680).child(image);   // this is just an example
    Glide.with(context).load(storageReference).into(imageIV);    
}
以下是Firebase数据库的外观:


我想知道这是我从Firebase数据库获取图像URL的方式吗?我见过将addValueEventListener与onDataChange和onCancelled一起使用的解决方案,但这有点慢加载我的数据

什么错误?
image
值看起来无效,因为在
https:
之后缺少
/
。谢谢,实际上URL是可以的,这只是一个例子,我忘了写//。错误如下:E/StorageException:StorageException已发生。对象在位置处不存在。代码:-13010 HttpResult:404无法打开结果流。java.io.IOException:无法打开结果流。
public class StudentsHolder extends RecyclerView.ViewHolder {

TextView nameTV;
TextView priceTV;
ImageView imageIV;

public StudentsHolder(View itemView) {
    super(itemView);
    nameTV = itemView.findViewById(R.id.name);
    priceTV = itemView.findViewById(R.id.price);
    imageIV = itemView.findViewById(R.id.image);
}


public void setName(String studentName) {
    nameTV.setText(studentName);
}

public void setPrice(String studentPrice) {
    priceTV.setText(studentPrice);
}

public void setImages(String image, Context context) {
    StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("Students").child(24680).child(image);   // this is just an example
    Glide.with(context).load(storageReference).into(imageIV);    
}