所以我想基本上从Firebase存储中获取图像(我将规则设置为public)。
这就是我所拥有的
ImageView image = (ImageView)findViewById(R.id.imageView);
Glide.with(this)
.load("https://firebasestorage.googleapis.com/v0/b/test-7c916.appspot.com/o/images.jpg?alt=media&token=b207cb11-9ad5-48e3-86ac-1dcb07ee6013")
.into(image);
而不是使用https链接。我想使用存储参考。但每次我尝试使用存储参考我的应用程序崩溃。 请帮忙。
与.child()方法类似。
答案 0 :(得分:3)
您需要使用StorageReference
加载Firebase存储图片。
// Reference to an image file in Cloud Storage
StorageReference storageReference = = FirebaseStorage.getInstance().getReference().child("myimage");
ImageView image = (ImageView)findViewById(R.id.imageView);
// Load the image using Glide
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(image );
答案 1 :(得分:0)
所以使用像这样的pRaNaY代码
StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("images.jpg");
ImageView image = (ImageView)findViewById(R.id.imageView);
Glide.with(this).using(new FirebaseImageLoader()).load(storageReference).into(image );
我之所以要使用引用是因为我将在txt文件中包含所有图像的名称,我将从中读取图像的名称并创建一个while循环以将所需的所有图像加载到右侧的地方。
还有一个问题,如何在不检查ImageView是否为null的情况下知道图像是否为空?
答案 2 :(得分:0)
将此类FirebaseImageLoader.java放到您的源代码中,或者自己编写。
在应用程序源中的任何地方进行授课,如下所示。
@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());
}
}
要在其中加载图像coad的地方,如下所示。
StorageReference storageReference = FirebaseStorage
.getInstance().getReference().child("myimage");
Glide.with(getApplicationContext())
.load(completeStorageRefranceToImage)
.into(imageView);