2017-04-18 115 views
0

我的情況: 在「添加個人檔案」頁面中,我有一個微調框,在該微調框中,我有一個用戶可以從中選擇的圖像列表。當用戶選擇一個圖像並點擊「保存」按鈕時,我希望該圖像可以進入數據庫,然後將其添加到其他活動中。如何將圖片保存到Firebase?

我想將圖像保存到數據庫的原因是因爲我想添加用戶在我的主頁上選擇的圖像。

我已經嘗試了很多東西,包括: 在微調器內部使用字符串而不是圖像,然後當用戶選擇某個字符串時,它會將頁面上的圖像視圖更改爲正確的圖像。但是,我仍然遇到了將數據映射到數據庫的問題。我也嘗試繞過數據庫,只是將圖像添加到其他活動與IF語句和意圖等沒有運氣。

我定製微調:

int[] array = getResources().getIntArray(R.array.images_array); 
     String [] objects = new String[array.length]; 
     for(int i = 0; i != array.length; i++){ 
      objects[i] = "" + array[i]; 
     } 

     spinner5.setAdapter(new MyAdapter(AddProfileActivity.this, R.id.spinner5, objects)); 

    } 

然後保存按鈕,我試圖用下:String valueOfSelectedPos = spinner5.getSelectedItem().toString(); 我已經試過這條線的最變化,因爲我知道我使用的是字符串在這裏嘗試添加圖像!

然後我去使用它添加到我的數據庫:

String id = databaseClients.push().getKey(); 

      Clients clients = new Clients(id, name, career, 
valueOfSelectedPos); 

      databaseClients.child(id).setValue(clients); 

正如你可能會說,我在這裏完全難住了。 如果您需要任何澄清或添加任何更多的代碼,我將非常樂意發佈它。 任何幫助將不勝感激。提前致謝!

回答

2

獲取圖像的Uri要保存火力,爲您可能需要圖像保存到存儲設備,然後調用此方法

private void uploadImage(Uri uri) { 
      FirebaseStorage storage = FirebaseStorage.getInstance(); 
      StorageReference storageRef = storage.getReference().child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()); 
      storageRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).putFile(uri); 
     } 
+0

謝謝您的回答!所以我必須先將圖像保存到設備中?你知道有沒有辦法解決這個問題?再次感謝。 – Joe

+0

你有什麼類型的圖像文件?它是一個可繪製的或位圖? –

+0

我也可以做,目前它是可繪製的。你知道嗎?謝謝 – Joe