2017-06-29 25 views
0

これは私のコードです。なぜgetDownloadUrl()の結果がストレージのイメージURLと異なるのかわかりません。イメージをFirebaseにアップロードすると、Database RealtimeのイメージURLがfirebaseストレージとは異なるイメージURLです。

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

"メッセージ": "許可が拒否されました。この操作を実行できませんでした"。印刷画面を追加するか、権限を変更します。 –

+0

@Alex Mamoが新しいリンクのURLを編集しました –

+0

写真を表示するコードを教えてください。 –

答えて

0

画像がFirebase Storageにアップロードされているときに別のURLを使用している場合は、URLをFirebase Databaseに追加するときに使用しているためです。最初にimageUriを使用していて、2回目の使用時にdownload_urlを使用しているのは同じではありません。この問題を解決するには、アップロードしているファイルのURLをストレージに保存し、データベースに追加するときにそのファイルを使用します。

希望します。

関連する問題