2017-05-07 445 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是否爲空?