2017-06-29 66 views
0

這是我的代碼,我不知道getDownloadUrl()爲什麼給出的結果與存儲中的圖片url不同。當我將圖片上傳到Firebase時,來自Database Realtime的圖片網址與Firebase存儲的不同圖片網址

final Uri imageUri = data.getData(); 

     String current_user_id = mCurrentUser.getUid(); 

     mProgressUpload.setMessage("Uploading Image..."); 
     mProgressUpload.setCanceledOnTouchOutside(true); 
     mProgressUpload.show(); 

     final StorageReference filepath = mImgStorage.child("cover_images").child(current_user_id + ".jpg"); 

     filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) { 

       @SuppressWarnings("VisibleForTests") final 
       String download_url = task.getResult().getDownloadUrl().toString(); 

       UploadTask uploadTask = filepath.putFile(imageUri); 
       uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() { 
        @Override 
        public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) { 

         if(task.isSuccessful()) { 

          Map updateHashmap = new HashMap<>(); 
          updateHashmap.put("cover", download_url); 

          mUserDatabase.updateChildren(updateHashmap).addOnCompleteListener(new OnCompleteListener() { 
           @Override 
           public void onComplete(@NonNull Task task) { 
            if (task.isSuccessful()) { 
             mProgressUpload.dismiss(); 
             Toast.makeText(ProfileSetting.this, "Update successful", Toast.LENGTH_SHORT).show(); 
            } else { 
             Toast.makeText(ProfileSetting.this, "Update failed", Toast.LENGTH_SHORT).show(); 
             mProgressUpload.dismiss(); 
            } 
           } 
          }); 
         } 
        } 
       }); 
      } 
     }); 

Image URL from Realtime Database

Image URL from Firebase Storage

你能解決這個問題???

+0

「message」:「權限被拒絕,無法執行此操作」。添加一個打印屏幕或改變權限。 –

+0

@Alex Mamo編輯了新的鏈接網址 –

+0

請向我們展示您顯示圖片的代碼。 –

回答

0

這是不同的,因爲當你上傳圖片到Firebase Storage你正在使用一個不同的網址,然後你正在使用當你將網址添加到Firebase Database。你第一次使用imageUri和第二次你使用download_url這顯然是不一樣的。因此,爲了解決這個問題,請將您上傳的文件的url存儲到存儲中,並在將其添加到數據庫時使用它。

希望它有幫助。