android - 从 Firebase 存储中检索图像并在回收站 View 中显示

标签 android

我已将图像上传到 firebase 存储并创建了两个单独的文件夹。图片已成功上传,但问题是检索这些图片。

我在网上搜索过,到处都是关于DatabaseReference 的教程,而不是 StorageReference。我想获取这些图像并显示在 RecyclerView 中。

用于上传的代码:

   StorageReference childRef = storageReference.child((String)spinner.getSelectedItem());


            //uploading the image
            UploadTask uploadTask = childRef.child(name).putFile(FilePathUri);

            uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    progressDialog.dismiss();
                    etName.setText("");
                    selectedImage.setImageResource(R.drawable.ic_action_add_dark);
                    Snackbar.make(view, "Upload successful", Snackbar.LENGTH_SHORT).show();
                }
            }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {

                    double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
                    progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");

                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    progressDialog.dismiss();
                    Snackbar.make(view, "Upload failed", Snackbar.LENGTH_SHORT).show();
                }
            });
        }

RecyclerView 适配器:

    public RCAdapter(Context context, List<DataModel> dataModels) {
    this.dataModels = dataModels;
    this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.layout_adapter, parent, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    DataModel upload = dataModels.get(position);

    Glide.with(context).load(upload.getUrl()).into(holder.imageView);
}

@Override
public int getItemCount() {
    return dataModels.size();
}

class ViewHolder extends RecyclerView.ViewHolder {

    ImageView imageView;

    ViewHolder(View itemView) {
        super(itemView);

        imageView =  itemView.findViewById(R.id.imageView);
    }
}

最佳答案

创建了两个独立的文件夹。图片已成功上传,但问题是检索这些图片。

我在网上搜索过,到处都是关于 DatabaseReference 而不是 StorageReference 的教程。我想获取这些图像并显示在 RecyclerView 中。

用于上传的代码:

StorageReference childRef = storageReference.child((String)spinner.getSelectedItem());

        //uploading the image
        UploadTask uploadTask = childRef.child(name).putFile(FilePathUri);

        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                progressDialog.dismiss();
                etName.setText("");
                selectedImage.setImageResource(R.drawable.ic_action_add_dark);
                Snackbar.make(view, "Upload successful", Snackbar.LENGTH_SHORT).show();
            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {

                double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
                progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
                Snackbar.make(view, "Upload failed", Snackbar.LENGTH_SHORT).show();
            }
        });

关于android - 从 Firebase 存储中检索图像并在回收站 View 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438996/

相关文章:

android - 检查应用程序是否在前台的最佳方法

java - 如何更改进度条中 "progress line"的高度?

android - 如何将数据从 ListView 中的选定项目传递到另一个 Activity ?

php - android webview 内的链接被打开两次

android - 如何处理更新 UI 的 RecyclerView 内的点击?

android - Android 中的 AWS 云搜索

java - 如何获得在 android studio 中打开新 Activity 的按钮?

android - 根据android :icon动态改变应用主题

android - 如何在 Android 中从 SQLite 中删除所有项目

android - 给搜索栏一个半圆形