我已将图像上传到 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/