2017-05-07 221 views
0

所以我想基本上从Firebase存储中获取图片(我已将规则设置为公开)。Firebase存储和Android图片

这是我

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()方法一样。

+1

你能否提供错误日志,让你的应用程序崩溃。所以它可以帮助我们更快地发现崩溃。 – pRaNaY

回答

1

您需要使用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); 

有关更多详细信息您可以检查Using FirebaseUI to download and display images

+0

虽然使用Firebase SDK中的“StorageReference”确实是从Cloud Storage下载的一种方式,但还有一个公开可读的,不可猜测的下载URL。这就是Alexei在这里使用的,所以它应该可以从任何可以从HTTPS下载的库中使用。 –

+0

感谢您的主席先生提供有关访问Firebase存储的更多信息。所以对于Alexei案例,我们需要弄清楚为什么应用程序会崩溃。 – pRaNaY

+0

当我尝试这个FirebaseImageLoader不显示为蓝色?我无法使用它?我的应用程序只有xamarin.android – Smac

0

所以像这样使用

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); 

有原因,我想用一个参考pRaNaY的代码是因为我将在一个txt文件中的所有图像的名字,我会从中读取图像的名称和创建一个while循环来将我需要的所有图像加载到正确的位置。

只是还有一个问题,我如何知道如果图像为空而不检查ImageView是否为空?