我正在尝试从Firebase下载图像。自从他们弃用get URI方法以来,我一直没有找到对我有用的替代方法。
我尝试过在firebase上使用方法,并在stackoverflow上使用其他方法,但其他解决方案似乎都无济于事。
profileImageReference = FirebaseStorage.getInstance().getReference("profile_images");
String imageFile = "QxTTXQYPlaN2nEdel6LPZ5HxbE33.jpeg";
StorageReference profRef = profileImageReference.child(imageFile);
blogImageView = mView.findViewById(R.id.blog_image);
Glide.with(context).load(profRef).into(blogImageView);
据我了解,此存储引用应指向profile_images文件夹,然后获取图像字符串的子代。但是它仍然无法在屏幕上更新。我删除了请求选项例外,因为我想看看它是否以某种方式覆盖了下载
答案 0 :(得分:0)
logcat尝试获取图像时是否显示任何信息/异常?我最初的想法是,由于您正在使用Firebase,因此需要将Glide
更改为GlideApp
,并在项目中创建一个扩展AppGlideModule
的类,以允许Glide使用Firebase图像加载。例如:
import android.content.Context;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
import com.firebase.ui.storage.images.FirebaseImageLoader;
import com.google.firebase.storage.StorageReference;
import java.io.InputStream;
@GlideModule
public final class TheGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
// Register FirebaseImageLoader to handle StorageReference
registry.append(StorageReference.class, InputStream.class,
new FirebaseImageLoader.Factory());
}
}
然后,制作项目并为Glide重建以创建新的关联,并将Glide.with(context).load(profRef).into(blogImageView);
替换为GlideApp.with(context).load(profRef).into(blogImageView);