感谢@ATom 的通知。Api 发生了变化,FirebaseUI 3.0 现在使用 Glide 4.x 以下是更新示例:
要从 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());
}
}
然后您可以将 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);
并且不要忘记在您的添加依赖项build.gradle
:
implementation 'com.firebaseui:firebase-ui-:3.1.0'
GitHub上的答案源
老答案:
FirebaseUI 1.0 现已发布。存储示例具有类FirebaseImageLoader
使用 FirebaseImageLoader 显示的图像按其在 Firebase 存储中的路径进行缓存,因此重复加载会很快并节省带宽。
// Reference to an image file in Firebase Storage
StorageReference storageReference = ...;
// ImageView in your Activity
ImageView imageView = ...;
// Load the image using Glide
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(imageView);