改变这个:
implementation 'com.firebaseui:firebase-ui-storage:2.0.1'
to this:
implementation 'com.firebaseui:firebase-ui-storage:3.2.1'
根据 Glide 文档:
using()
using() API 在 Glide 4 中被删除,以鼓励用户使用 AppGlideModule 注册一次组件,以避免对象重复使用。您无需在每次加载图像时创建一个新的 ModelLoader,而是在 AppGlideModule 中注册一次,然后让 Glide 检查您的模型(传递给 load() 的对象)以确定何时使用已注册的 ModelLoader。
为了确保您仅将 ModelLoader 用于某些模型,请实现如上所示的 handlers() 来检查每个模型,并仅在应使用 ModelLoader 时返回 true。
using()
已从 Glide 4 中删除。
要解决这个问题,您需要执行以下操作:
要从 StorageReference 加载图像,首先注册一个 AppGlideModule:
@GlideModule
public class MyAppGlideModule 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());
}
}
创建 AppGlideModule 类并完成干净构建后,您可以使用 GlideApp 将 StorageReference 加载到 ImageView 中:
// Reference to an image file in Cloud Storage
StorageReference storageReference = ...;
// ImageView in your Activity
ImageView imageView = ...;
// Download directly from StorageReference using Glide
// (See MyAppGlideModule for Loader registration)
GlideApp.with(this /* context */)
.load(storageReference)
.into(imageView);
更多信息在这里:https://github.com/firebase/FirebaseUI-Android/tree/master/storage https://github.com/firebase/FirebaseUI-Android/tree/master/storage