taskSnapshot.getDownloadUrl() method not working












8















private void uploadImageToFirebaseStorage() {
StorageReference profileImageRef =
FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");

if (uriProfileImage != null) {
progressBar.setVisibility(View.VISIBLE);
profileImageRef.putFile(uriProfileImage)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
progressBar.setVisibility(View.GONE);
profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressBar.setVisibility(View.GONE);
Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}


taskSnapshot.getDownloadUrl() method not working comes up with red line under it










share|improve this question





























    8















    private void uploadImageToFirebaseStorage() {
    StorageReference profileImageRef =
    FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");

    if (uriProfileImage != null) {
    progressBar.setVisibility(View.VISIBLE);
    profileImageRef.putFile(uriProfileImage)
    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
    progressBar.setVisibility(View.GONE);
    profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();
    }
    })
    .addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
    progressBar.setVisibility(View.GONE);
    Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }
    });
    }
    }


    taskSnapshot.getDownloadUrl() method not working comes up with red line under it










    share|improve this question



























      8












      8








      8


      4






      private void uploadImageToFirebaseStorage() {
      StorageReference profileImageRef =
      FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");

      if (uriProfileImage != null) {
      progressBar.setVisibility(View.VISIBLE);
      profileImageRef.putFile(uriProfileImage)
      .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
      @Override
      public void onSuccess(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
      progressBar.setVisibility(View.GONE);
      profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();
      }
      })
      .addOnFailureListener(new OnFailureListener() {
      @Override
      public void onFailure(@NonNull Exception e) {
      progressBar.setVisibility(View.GONE);
      Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
      }
      });
      }
      }


      taskSnapshot.getDownloadUrl() method not working comes up with red line under it










      share|improve this question
















      private void uploadImageToFirebaseStorage() {
      StorageReference profileImageRef =
      FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");

      if (uriProfileImage != null) {
      progressBar.setVisibility(View.VISIBLE);
      profileImageRef.putFile(uriProfileImage)
      .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
      @Override
      public void onSuccess(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
      progressBar.setVisibility(View.GONE);
      profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();
      }
      })
      .addOnFailureListener(new OnFailureListener() {
      @Override
      public void onFailure(@NonNull Exception e) {
      progressBar.setVisibility(View.GONE);
      Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
      }
      });
      }
      }


      taskSnapshot.getDownloadUrl() method not working comes up with red line under it







      android






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited May 29 '18 at 13:52









      Adeel

      2,27261728




      2,27261728










      asked May 29 '18 at 13:13









      David GDavid G

      9019




      9019
























          11 Answers
          11






          active

          oldest

          votes


















          28














          in Firebase Storage API version 16.0.1.
          The getDownloadUrl() method using taskSnapshot object has changed.
          now you can use'
          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
          to get download url from the firebase storage.






          share|improve this answer
























          • Thank you!.....

            – David G
            Jun 18 '18 at 10:33











          • I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

            – LeleMarieC
            Jan 17 at 2:43













          • now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

            – SUMIT MONAPARA
            Jan 23 at 18:23



















          3














          Try Using this it will download the image from FireBase storage



          FireBase Libraries versions 16.0.1



          Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
          result.addOnSuccessListener(new OnSuccessListener<Uri>() {
          @Override
          public void onSuccess(Uri uri) {
          String photoStringLink = uri.toString();
          }
          });





          share|improve this answer
























          • Mark this as a valid ans

            – Pandiri Deepak
            Sep 15 '18 at 9:53



















          2














          My Google Firebase Plugins in build.gradle(Module: app):



          implementation 'com.firebaseui:firebase-ui-database:3.3.1'
          implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
          implementation 'com.google.firebase:firebase-core:16.0.0'
          implementation 'com.google.firebase:firebase-database:16.0.1'
          implementation 'com.google.firebase:firebase-auth:16.0.1'
          implementation 'com.google.firebase:firebase-storage:16.0.1'


          build.gradle(Project):



           classpath 'com.google.gms:google-services:3.2.1'


          My upload() function and fetching uploaded data from Firebase storage :



          private void upload() {
          if (filePath!=null) {
          final ProgressDialog progressDialog = new ProgressDialog(this);
          progressDialog.setTitle("Uploading...");
          progressDialog.show();

          final StorageReference ref = storageReference.child(new StringBuilder("images/").append(UUID.randomUUID().toString()).toString());
          uploadTask = ref.putFile(filePath);

          Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
          @Override
          public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
          if (!task.isSuccessful()) {
          throw task.getException();
          }

          return ref.getDownloadUrl();
          }
          }).addOnCompleteListener(new OnCompleteListener<Uri>() {
          @Override
          public void onComplete(@NonNull Task<Uri> task) {
          if (task.isSuccessful()) {
          Uri downloadUri = task.getResult();
          progressDialog.dismiss();
          // Continue with the task to get the download URL
          saveUrlToCategory(downloadUri.toString(),categoryIdSelect);
          } else {
          Toast.makeText(UploadWallpaper.this, "Fail UPLOAD", Toast.LENGTH_SHORT).show();
          }
          }
          }).addOnSuccessListener(new OnSuccessListener<Uri>() {
          @Override
          public void onSuccess(Uri uri) {
          progressDialog.setMessage("Uploaded: ");
          }
          }).addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(@NonNull Exception e) {
          progressDialog.dismiss();
          Toast.makeText(UploadWallpaper.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
          }
          });
          }
          }


          FOR THOSE WHO ARE USING LATEST FIREBASE VERSION taskSnapshot.getDownloadUrl() method is DEPRECATED or OBSOLETE !!






          share|improve this answer































            2














            I faced the similar error I solved it with this method. Hope it helps



            uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();
            task.addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
            String photoLink = uri.toString();
            Map userInfo = new HashMap();
            userInfo.put("profileImageUrl", photoLink);
            mUserDatabase.updateChildren(userInfo);
            }
            });
            finish();
            return;
            }
            });





            share|improve this answer































              1














              You wont get the download url of image now using



              profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();


              this method is deprecated.



              Instead you can use the below method



                  uniqueId = UUID.randomUUID().toString();
              ur_firebase_reference = storageReference.child("user_photos/" + uniqueId);

              Uri file = Uri.fromFile(new File(mphotofile.getAbsolutePath()));
              UploadTask uploadTask = ur_firebase_reference.putFile(file);

              Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
              @Override
              public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
              if (!task.isSuccessful()) {
              throw task.getException();
              }

              // Continue with the task to get the download URL
              return ur_firebase_reference.getDownloadUrl();
              }
              }).addOnCompleteListener(new OnCompleteListener<Uri>() {
              @Override
              public void onComplete(@NonNull Task<Uri> task) {
              if (task.isSuccessful()) {
              Uri downloadUri = task.getResult();
              System.out.println("Upload " + downloadUri);
              Toast.makeText(mActivity, "Successfully uploaded", Toast.LENGTH_SHORT).show();
              if (downloadUri != null) {

              String photoStringLink = downloadUri.toString(); //YOU WILL GET THE DOWNLOAD URL HERE !!!!
              System.out.println("Upload " + photoStringLink);

              }

              } else {
              // Handle failures
              // ...
              }
              }
              });





              share|improve this answer































                1














                //upload button onClick
                public void uploadImage(View view){
                openImage()
                }

                private Uri imageUri;

                ProgressDialog pd;

                //Call open Image from any onClick Listener
                private void openImage() {
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(intent,IMAGE_REQUEST);
                }

                private void uploadImage(){
                pd = new ProgressDialog(mContext);
                pd.setMessage("Uploading...");
                pd.show();

                if (imageUri != null){
                final StorageReference fileReference = storageReference.child(userID
                + "."+"jpg");

                // Get the data from an ImageView as bytes
                _profilePicture.setDrawingCacheEnabled(true);
                _profilePicture.buildDrawingCache();

                //Bitmap bitmap = ((BitmapDrawable) _profilePicture.getDrawable()).getBitmap();

                Bitmap bitmap = null;
                try {
                bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                } catch (IOException e) {
                e.printStackTrace();
                }

                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
                byte data = baos.toByteArray();

                UploadTask uploadTask = fileReference.putBytes(data);
                uploadTask.addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                // Handle unsuccessful uploads
                pd.dismiss();
                Log.e("Data Upload: ", "Failled");
                }
                }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
                // ...
                Log.e("Data Upload: ", "success");
                Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                String downloadLink = uri.toString();
                Log.e("download url : ", downloadLink);
                }
                });

                pd.dismiss();

                }
                });

                }else {
                Toast.makeText(getApplicationContext(),"No Image Selected", Toast.LENGTH_SHORT).show();
                }
                }

                @Override
                protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);

                Bitmap bitmap = null;
                if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
                imageUri = data.getData();
                try {
                bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri);
                _profilePicture1.setImageBitmap(bitmap);
                _profilePicture1.setDrawingCacheEnabled(true);
                _profilePicture1.buildDrawingCache();
                } catch (IOException e) {
                e.printStackTrace();
                }

                if (uploadTask != null && uploadTask.isInProgress()){
                Toast.makeText(mContext,"Upload in Progress!", Toast.LENGTH_SHORT).show();
                }
                else {
                try{
                uploadImage();
                }catch (Exception e){
                e.printStackTrace();
                }
                }
                }
                }





                share|improve this answer































                  1














                  taskSnapshot.**getDownloadUrl**().toString(); //deprecated and removed


                  use below code for downloading Url



                  final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" + "abc_10123" + ".jpg");

                  profileImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
                  {
                  @Override
                  public void onSuccess(Uri downloadUrl)
                  {
                  //do something with downloadurl
                  }
                  });





                  share|improve this answer


























                  • yes. it needs to be made final. please mark as solution if it helps you

                    – Muhammad Saad
                    May 30 '18 at 9:37











                  • final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                    – Muhammad Saad
                    May 30 '18 at 9:40











                  • not all heroes wear capes

                    – martinseal1987
                    Jun 7 '18 at 19:42



















                  1














                  I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as



                   someTask.getResult().getMetadata().getReference().getDownloadUrl().toString();


                  hope this helps!






                  share|improve this answer































                    0














                    for latest version try



                    profileImageUrl = taskSnapshot.getStorage().getDownloadUrl().toString();





                    share|improve this answer































                      0














                      Try using this:



                      taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()





                      share|improve this answer

































                        -1














                        I still having this error. What might be wrong? I already changed the permissions, and users to anonymous.



                        enter image description here






                        share|improve this answer
























                          Your Answer






                          StackExchange.ifUsing("editor", function () {
                          StackExchange.using("externalEditor", function () {
                          StackExchange.using("snippets", function () {
                          StackExchange.snippets.init();
                          });
                          });
                          }, "code-snippets");

                          StackExchange.ready(function() {
                          var channelOptions = {
                          tags: "".split(" "),
                          id: "1"
                          };
                          initTagRenderer("".split(" "), "".split(" "), channelOptions);

                          StackExchange.using("externalEditor", function() {
                          // Have to fire editor after snippets, if snippets enabled
                          if (StackExchange.settings.snippets.snippetsEnabled) {
                          StackExchange.using("snippets", function() {
                          createEditor();
                          });
                          }
                          else {
                          createEditor();
                          }
                          });

                          function createEditor() {
                          StackExchange.prepareEditor({
                          heartbeatType: 'answer',
                          autoActivateHeartbeat: false,
                          convertImagesToLinks: true,
                          noModals: true,
                          showLowRepImageUploadWarning: true,
                          reputationToPostImages: 10,
                          bindNavPrevention: true,
                          postfix: "",
                          imageUploader: {
                          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                          allowUrls: true
                          },
                          onDemand: true,
                          discardSelector: ".discard-answer"
                          ,immediatelyShowMarkdownHelp:true
                          });


                          }
                          });














                          draft saved

                          draft discarded


















                          StackExchange.ready(
                          function () {
                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50585334%2ftasksnapshot-getdownloadurl-method-not-working%23new-answer', 'question_page');
                          }
                          );

                          Post as a guest















                          Required, but never shown

























                          11 Answers
                          11






                          active

                          oldest

                          votes








                          11 Answers
                          11






                          active

                          oldest

                          votes









                          active

                          oldest

                          votes






                          active

                          oldest

                          votes









                          28














                          in Firebase Storage API version 16.0.1.
                          The getDownloadUrl() method using taskSnapshot object has changed.
                          now you can use'
                          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
                          to get download url from the firebase storage.






                          share|improve this answer
























                          • Thank you!.....

                            – David G
                            Jun 18 '18 at 10:33











                          • I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                            – LeleMarieC
                            Jan 17 at 2:43













                          • now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                            – SUMIT MONAPARA
                            Jan 23 at 18:23
















                          28














                          in Firebase Storage API version 16.0.1.
                          The getDownloadUrl() method using taskSnapshot object has changed.
                          now you can use'
                          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
                          to get download url from the firebase storage.






                          share|improve this answer
























                          • Thank you!.....

                            – David G
                            Jun 18 '18 at 10:33











                          • I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                            – LeleMarieC
                            Jan 17 at 2:43













                          • now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                            – SUMIT MONAPARA
                            Jan 23 at 18:23














                          28












                          28








                          28







                          in Firebase Storage API version 16.0.1.
                          The getDownloadUrl() method using taskSnapshot object has changed.
                          now you can use'
                          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
                          to get download url from the firebase storage.






                          share|improve this answer













                          in Firebase Storage API version 16.0.1.
                          The getDownloadUrl() method using taskSnapshot object has changed.
                          now you can use'
                          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
                          to get download url from the firebase storage.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Jun 18 '18 at 6:02









                          SUMIT MONAPARASUMIT MONAPARA

                          30628




                          30628













                          • Thank you!.....

                            – David G
                            Jun 18 '18 at 10:33











                          • I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                            – LeleMarieC
                            Jan 17 at 2:43













                          • now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                            – SUMIT MONAPARA
                            Jan 23 at 18:23



















                          • Thank you!.....

                            – David G
                            Jun 18 '18 at 10:33











                          • I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                            – LeleMarieC
                            Jan 17 at 2:43













                          • now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                            – SUMIT MONAPARA
                            Jan 23 at 18:23

















                          Thank you!.....

                          – David G
                          Jun 18 '18 at 10:33





                          Thank you!.....

                          – David G
                          Jun 18 '18 at 10:33













                          I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                          – LeleMarieC
                          Jan 17 at 2:43







                          I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as uploadTask.getResult().getMetadata().getReference().getDownloadUrl().toString();

                          – LeleMarieC
                          Jan 17 at 2:43















                          now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                          – SUMIT MONAPARA
                          Jan 23 at 18:23





                          now some user has to use StorageReference (Path Where you upload your file) object and then getDownloadUrl() and then add CompleteListener to get the direct download url for the particular document of the reference.

                          – SUMIT MONAPARA
                          Jan 23 at 18:23













                          3














                          Try Using this it will download the image from FireBase storage



                          FireBase Libraries versions 16.0.1



                          Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                          result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                          @Override
                          public void onSuccess(Uri uri) {
                          String photoStringLink = uri.toString();
                          }
                          });





                          share|improve this answer
























                          • Mark this as a valid ans

                            – Pandiri Deepak
                            Sep 15 '18 at 9:53
















                          3














                          Try Using this it will download the image from FireBase storage



                          FireBase Libraries versions 16.0.1



                          Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                          result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                          @Override
                          public void onSuccess(Uri uri) {
                          String photoStringLink = uri.toString();
                          }
                          });





                          share|improve this answer
























                          • Mark this as a valid ans

                            – Pandiri Deepak
                            Sep 15 '18 at 9:53














                          3












                          3








                          3







                          Try Using this it will download the image from FireBase storage



                          FireBase Libraries versions 16.0.1



                          Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                          result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                          @Override
                          public void onSuccess(Uri uri) {
                          String photoStringLink = uri.toString();
                          }
                          });





                          share|improve this answer













                          Try Using this it will download the image from FireBase storage



                          FireBase Libraries versions 16.0.1



                          Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                          result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                          @Override
                          public void onSuccess(Uri uri) {
                          String photoStringLink = uri.toString();
                          }
                          });






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Aug 27 '18 at 18:39









                          AmrDeveloperAmrDeveloper

                          488




                          488













                          • Mark this as a valid ans

                            – Pandiri Deepak
                            Sep 15 '18 at 9:53



















                          • Mark this as a valid ans

                            – Pandiri Deepak
                            Sep 15 '18 at 9:53

















                          Mark this as a valid ans

                          – Pandiri Deepak
                          Sep 15 '18 at 9:53





                          Mark this as a valid ans

                          – Pandiri Deepak
                          Sep 15 '18 at 9:53











                          2














                          My Google Firebase Plugins in build.gradle(Module: app):



                          implementation 'com.firebaseui:firebase-ui-database:3.3.1'
                          implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
                          implementation 'com.google.firebase:firebase-core:16.0.0'
                          implementation 'com.google.firebase:firebase-database:16.0.1'
                          implementation 'com.google.firebase:firebase-auth:16.0.1'
                          implementation 'com.google.firebase:firebase-storage:16.0.1'


                          build.gradle(Project):



                           classpath 'com.google.gms:google-services:3.2.1'


                          My upload() function and fetching uploaded data from Firebase storage :



                          private void upload() {
                          if (filePath!=null) {
                          final ProgressDialog progressDialog = new ProgressDialog(this);
                          progressDialog.setTitle("Uploading...");
                          progressDialog.show();

                          final StorageReference ref = storageReference.child(new StringBuilder("images/").append(UUID.randomUUID().toString()).toString());
                          uploadTask = ref.putFile(filePath);

                          Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                          @Override
                          public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                          if (!task.isSuccessful()) {
                          throw task.getException();
                          }

                          return ref.getDownloadUrl();
                          }
                          }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                          @Override
                          public void onComplete(@NonNull Task<Uri> task) {
                          if (task.isSuccessful()) {
                          Uri downloadUri = task.getResult();
                          progressDialog.dismiss();
                          // Continue with the task to get the download URL
                          saveUrlToCategory(downloadUri.toString(),categoryIdSelect);
                          } else {
                          Toast.makeText(UploadWallpaper.this, "Fail UPLOAD", Toast.LENGTH_SHORT).show();
                          }
                          }
                          }).addOnSuccessListener(new OnSuccessListener<Uri>() {
                          @Override
                          public void onSuccess(Uri uri) {
                          progressDialog.setMessage("Uploaded: ");
                          }
                          }).addOnFailureListener(new OnFailureListener() {
                          @Override
                          public void onFailure(@NonNull Exception e) {
                          progressDialog.dismiss();
                          Toast.makeText(UploadWallpaper.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
                          }
                          });
                          }
                          }


                          FOR THOSE WHO ARE USING LATEST FIREBASE VERSION taskSnapshot.getDownloadUrl() method is DEPRECATED or OBSOLETE !!






                          share|improve this answer




























                            2














                            My Google Firebase Plugins in build.gradle(Module: app):



                            implementation 'com.firebaseui:firebase-ui-database:3.3.1'
                            implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
                            implementation 'com.google.firebase:firebase-core:16.0.0'
                            implementation 'com.google.firebase:firebase-database:16.0.1'
                            implementation 'com.google.firebase:firebase-auth:16.0.1'
                            implementation 'com.google.firebase:firebase-storage:16.0.1'


                            build.gradle(Project):



                             classpath 'com.google.gms:google-services:3.2.1'


                            My upload() function and fetching uploaded data from Firebase storage :



                            private void upload() {
                            if (filePath!=null) {
                            final ProgressDialog progressDialog = new ProgressDialog(this);
                            progressDialog.setTitle("Uploading...");
                            progressDialog.show();

                            final StorageReference ref = storageReference.child(new StringBuilder("images/").append(UUID.randomUUID().toString()).toString());
                            uploadTask = ref.putFile(filePath);

                            Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                            @Override
                            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                            if (!task.isSuccessful()) {
                            throw task.getException();
                            }

                            return ref.getDownloadUrl();
                            }
                            }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                            @Override
                            public void onComplete(@NonNull Task<Uri> task) {
                            if (task.isSuccessful()) {
                            Uri downloadUri = task.getResult();
                            progressDialog.dismiss();
                            // Continue with the task to get the download URL
                            saveUrlToCategory(downloadUri.toString(),categoryIdSelect);
                            } else {
                            Toast.makeText(UploadWallpaper.this, "Fail UPLOAD", Toast.LENGTH_SHORT).show();
                            }
                            }
                            }).addOnSuccessListener(new OnSuccessListener<Uri>() {
                            @Override
                            public void onSuccess(Uri uri) {
                            progressDialog.setMessage("Uploaded: ");
                            }
                            }).addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                            progressDialog.dismiss();
                            Toast.makeText(UploadWallpaper.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
                            }
                            });
                            }
                            }


                            FOR THOSE WHO ARE USING LATEST FIREBASE VERSION taskSnapshot.getDownloadUrl() method is DEPRECATED or OBSOLETE !!






                            share|improve this answer


























                              2












                              2








                              2







                              My Google Firebase Plugins in build.gradle(Module: app):



                              implementation 'com.firebaseui:firebase-ui-database:3.3.1'
                              implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
                              implementation 'com.google.firebase:firebase-core:16.0.0'
                              implementation 'com.google.firebase:firebase-database:16.0.1'
                              implementation 'com.google.firebase:firebase-auth:16.0.1'
                              implementation 'com.google.firebase:firebase-storage:16.0.1'


                              build.gradle(Project):



                               classpath 'com.google.gms:google-services:3.2.1'


                              My upload() function and fetching uploaded data from Firebase storage :



                              private void upload() {
                              if (filePath!=null) {
                              final ProgressDialog progressDialog = new ProgressDialog(this);
                              progressDialog.setTitle("Uploading...");
                              progressDialog.show();

                              final StorageReference ref = storageReference.child(new StringBuilder("images/").append(UUID.randomUUID().toString()).toString());
                              uploadTask = ref.putFile(filePath);

                              Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                              @Override
                              public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                              if (!task.isSuccessful()) {
                              throw task.getException();
                              }

                              return ref.getDownloadUrl();
                              }
                              }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                              @Override
                              public void onComplete(@NonNull Task<Uri> task) {
                              if (task.isSuccessful()) {
                              Uri downloadUri = task.getResult();
                              progressDialog.dismiss();
                              // Continue with the task to get the download URL
                              saveUrlToCategory(downloadUri.toString(),categoryIdSelect);
                              } else {
                              Toast.makeText(UploadWallpaper.this, "Fail UPLOAD", Toast.LENGTH_SHORT).show();
                              }
                              }
                              }).addOnSuccessListener(new OnSuccessListener<Uri>() {
                              @Override
                              public void onSuccess(Uri uri) {
                              progressDialog.setMessage("Uploaded: ");
                              }
                              }).addOnFailureListener(new OnFailureListener() {
                              @Override
                              public void onFailure(@NonNull Exception e) {
                              progressDialog.dismiss();
                              Toast.makeText(UploadWallpaper.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
                              }
                              });
                              }
                              }


                              FOR THOSE WHO ARE USING LATEST FIREBASE VERSION taskSnapshot.getDownloadUrl() method is DEPRECATED or OBSOLETE !!






                              share|improve this answer













                              My Google Firebase Plugins in build.gradle(Module: app):



                              implementation 'com.firebaseui:firebase-ui-database:3.3.1'
                              implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
                              implementation 'com.google.firebase:firebase-core:16.0.0'
                              implementation 'com.google.firebase:firebase-database:16.0.1'
                              implementation 'com.google.firebase:firebase-auth:16.0.1'
                              implementation 'com.google.firebase:firebase-storage:16.0.1'


                              build.gradle(Project):



                               classpath 'com.google.gms:google-services:3.2.1'


                              My upload() function and fetching uploaded data from Firebase storage :



                              private void upload() {
                              if (filePath!=null) {
                              final ProgressDialog progressDialog = new ProgressDialog(this);
                              progressDialog.setTitle("Uploading...");
                              progressDialog.show();

                              final StorageReference ref = storageReference.child(new StringBuilder("images/").append(UUID.randomUUID().toString()).toString());
                              uploadTask = ref.putFile(filePath);

                              Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                              @Override
                              public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                              if (!task.isSuccessful()) {
                              throw task.getException();
                              }

                              return ref.getDownloadUrl();
                              }
                              }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                              @Override
                              public void onComplete(@NonNull Task<Uri> task) {
                              if (task.isSuccessful()) {
                              Uri downloadUri = task.getResult();
                              progressDialog.dismiss();
                              // Continue with the task to get the download URL
                              saveUrlToCategory(downloadUri.toString(),categoryIdSelect);
                              } else {
                              Toast.makeText(UploadWallpaper.this, "Fail UPLOAD", Toast.LENGTH_SHORT).show();
                              }
                              }
                              }).addOnSuccessListener(new OnSuccessListener<Uri>() {
                              @Override
                              public void onSuccess(Uri uri) {
                              progressDialog.setMessage("Uploaded: ");
                              }
                              }).addOnFailureListener(new OnFailureListener() {
                              @Override
                              public void onFailure(@NonNull Exception e) {
                              progressDialog.dismiss();
                              Toast.makeText(UploadWallpaper.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
                              }
                              });
                              }
                              }


                              FOR THOSE WHO ARE USING LATEST FIREBASE VERSION taskSnapshot.getDownloadUrl() method is DEPRECATED or OBSOLETE !!







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Jun 18 '18 at 16:05









                              Immanuel Joshua PaulImmanuel Joshua Paul

                              3212




                              3212























                                  2














                                  I faced the similar error I solved it with this method. Hope it helps



                                  uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                  @Override
                                  public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                  Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                  task.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                  @Override
                                  public void onSuccess(Uri uri) {
                                  String photoLink = uri.toString();
                                  Map userInfo = new HashMap();
                                  userInfo.put("profileImageUrl", photoLink);
                                  mUserDatabase.updateChildren(userInfo);
                                  }
                                  });
                                  finish();
                                  return;
                                  }
                                  });





                                  share|improve this answer




























                                    2














                                    I faced the similar error I solved it with this method. Hope it helps



                                    uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                    @Override
                                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                    Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                    task.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                    @Override
                                    public void onSuccess(Uri uri) {
                                    String photoLink = uri.toString();
                                    Map userInfo = new HashMap();
                                    userInfo.put("profileImageUrl", photoLink);
                                    mUserDatabase.updateChildren(userInfo);
                                    }
                                    });
                                    finish();
                                    return;
                                    }
                                    });





                                    share|improve this answer


























                                      2












                                      2








                                      2







                                      I faced the similar error I solved it with this method. Hope it helps



                                      uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                      @Override
                                      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                      Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                      task.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                      @Override
                                      public void onSuccess(Uri uri) {
                                      String photoLink = uri.toString();
                                      Map userInfo = new HashMap();
                                      userInfo.put("profileImageUrl", photoLink);
                                      mUserDatabase.updateChildren(userInfo);
                                      }
                                      });
                                      finish();
                                      return;
                                      }
                                      });





                                      share|improve this answer













                                      I faced the similar error I solved it with this method. Hope it helps



                                      uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                      @Override
                                      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                      Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                      task.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                      @Override
                                      public void onSuccess(Uri uri) {
                                      String photoLink = uri.toString();
                                      Map userInfo = new HashMap();
                                      userInfo.put("profileImageUrl", photoLink);
                                      mUserDatabase.updateChildren(userInfo);
                                      }
                                      });
                                      finish();
                                      return;
                                      }
                                      });






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Dec 29 '18 at 8:55









                                      Shivam MaindolaShivam Maindola

                                      32110




                                      32110























                                          1














                                          You wont get the download url of image now using



                                          profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();


                                          this method is deprecated.



                                          Instead you can use the below method



                                              uniqueId = UUID.randomUUID().toString();
                                          ur_firebase_reference = storageReference.child("user_photos/" + uniqueId);

                                          Uri file = Uri.fromFile(new File(mphotofile.getAbsolutePath()));
                                          UploadTask uploadTask = ur_firebase_reference.putFile(file);

                                          Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                                          @Override
                                          public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                                          if (!task.isSuccessful()) {
                                          throw task.getException();
                                          }

                                          // Continue with the task to get the download URL
                                          return ur_firebase_reference.getDownloadUrl();
                                          }
                                          }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                                          @Override
                                          public void onComplete(@NonNull Task<Uri> task) {
                                          if (task.isSuccessful()) {
                                          Uri downloadUri = task.getResult();
                                          System.out.println("Upload " + downloadUri);
                                          Toast.makeText(mActivity, "Successfully uploaded", Toast.LENGTH_SHORT).show();
                                          if (downloadUri != null) {

                                          String photoStringLink = downloadUri.toString(); //YOU WILL GET THE DOWNLOAD URL HERE !!!!
                                          System.out.println("Upload " + photoStringLink);

                                          }

                                          } else {
                                          // Handle failures
                                          // ...
                                          }
                                          }
                                          });





                                          share|improve this answer




























                                            1














                                            You wont get the download url of image now using



                                            profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();


                                            this method is deprecated.



                                            Instead you can use the below method



                                                uniqueId = UUID.randomUUID().toString();
                                            ur_firebase_reference = storageReference.child("user_photos/" + uniqueId);

                                            Uri file = Uri.fromFile(new File(mphotofile.getAbsolutePath()));
                                            UploadTask uploadTask = ur_firebase_reference.putFile(file);

                                            Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                                            @Override
                                            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                                            if (!task.isSuccessful()) {
                                            throw task.getException();
                                            }

                                            // Continue with the task to get the download URL
                                            return ur_firebase_reference.getDownloadUrl();
                                            }
                                            }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                                            @Override
                                            public void onComplete(@NonNull Task<Uri> task) {
                                            if (task.isSuccessful()) {
                                            Uri downloadUri = task.getResult();
                                            System.out.println("Upload " + downloadUri);
                                            Toast.makeText(mActivity, "Successfully uploaded", Toast.LENGTH_SHORT).show();
                                            if (downloadUri != null) {

                                            String photoStringLink = downloadUri.toString(); //YOU WILL GET THE DOWNLOAD URL HERE !!!!
                                            System.out.println("Upload " + photoStringLink);

                                            }

                                            } else {
                                            // Handle failures
                                            // ...
                                            }
                                            }
                                            });





                                            share|improve this answer


























                                              1












                                              1








                                              1







                                              You wont get the download url of image now using



                                              profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();


                                              this method is deprecated.



                                              Instead you can use the below method



                                                  uniqueId = UUID.randomUUID().toString();
                                              ur_firebase_reference = storageReference.child("user_photos/" + uniqueId);

                                              Uri file = Uri.fromFile(new File(mphotofile.getAbsolutePath()));
                                              UploadTask uploadTask = ur_firebase_reference.putFile(file);

                                              Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                                              @Override
                                              public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                                              if (!task.isSuccessful()) {
                                              throw task.getException();
                                              }

                                              // Continue with the task to get the download URL
                                              return ur_firebase_reference.getDownloadUrl();
                                              }
                                              }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                                              @Override
                                              public void onComplete(@NonNull Task<Uri> task) {
                                              if (task.isSuccessful()) {
                                              Uri downloadUri = task.getResult();
                                              System.out.println("Upload " + downloadUri);
                                              Toast.makeText(mActivity, "Successfully uploaded", Toast.LENGTH_SHORT).show();
                                              if (downloadUri != null) {

                                              String photoStringLink = downloadUri.toString(); //YOU WILL GET THE DOWNLOAD URL HERE !!!!
                                              System.out.println("Upload " + photoStringLink);

                                              }

                                              } else {
                                              // Handle failures
                                              // ...
                                              }
                                              }
                                              });





                                              share|improve this answer













                                              You wont get the download url of image now using



                                              profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();


                                              this method is deprecated.



                                              Instead you can use the below method



                                                  uniqueId = UUID.randomUUID().toString();
                                              ur_firebase_reference = storageReference.child("user_photos/" + uniqueId);

                                              Uri file = Uri.fromFile(new File(mphotofile.getAbsolutePath()));
                                              UploadTask uploadTask = ur_firebase_reference.putFile(file);

                                              Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                                              @Override
                                              public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                                              if (!task.isSuccessful()) {
                                              throw task.getException();
                                              }

                                              // Continue with the task to get the download URL
                                              return ur_firebase_reference.getDownloadUrl();
                                              }
                                              }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                                              @Override
                                              public void onComplete(@NonNull Task<Uri> task) {
                                              if (task.isSuccessful()) {
                                              Uri downloadUri = task.getResult();
                                              System.out.println("Upload " + downloadUri);
                                              Toast.makeText(mActivity, "Successfully uploaded", Toast.LENGTH_SHORT).show();
                                              if (downloadUri != null) {

                                              String photoStringLink = downloadUri.toString(); //YOU WILL GET THE DOWNLOAD URL HERE !!!!
                                              System.out.println("Upload " + photoStringLink);

                                              }

                                              } else {
                                              // Handle failures
                                              // ...
                                              }
                                              }
                                              });






                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered Sep 20 '18 at 11:50









                                              MIDHUN CEASARMIDHUN CEASAR

                                              517




                                              517























                                                  1














                                                  //upload button onClick
                                                  public void uploadImage(View view){
                                                  openImage()
                                                  }

                                                  private Uri imageUri;

                                                  ProgressDialog pd;

                                                  //Call open Image from any onClick Listener
                                                  private void openImage() {
                                                  Intent intent = new Intent();
                                                  intent.setType("image/*");
                                                  intent.setAction(Intent.ACTION_GET_CONTENT);
                                                  startActivityForResult(intent,IMAGE_REQUEST);
                                                  }

                                                  private void uploadImage(){
                                                  pd = new ProgressDialog(mContext);
                                                  pd.setMessage("Uploading...");
                                                  pd.show();

                                                  if (imageUri != null){
                                                  final StorageReference fileReference = storageReference.child(userID
                                                  + "."+"jpg");

                                                  // Get the data from an ImageView as bytes
                                                  _profilePicture.setDrawingCacheEnabled(true);
                                                  _profilePicture.buildDrawingCache();

                                                  //Bitmap bitmap = ((BitmapDrawable) _profilePicture.getDrawable()).getBitmap();

                                                  Bitmap bitmap = null;
                                                  try {
                                                  bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                                                  } catch (IOException e) {
                                                  e.printStackTrace();
                                                  }

                                                  ByteArrayOutputStream baos = new ByteArrayOutputStream();
                                                  bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
                                                  byte data = baos.toByteArray();

                                                  UploadTask uploadTask = fileReference.putBytes(data);
                                                  uploadTask.addOnFailureListener(new OnFailureListener() {
                                                  @Override
                                                  public void onFailure(@NonNull Exception exception) {
                                                  // Handle unsuccessful uploads
                                                  pd.dismiss();
                                                  Log.e("Data Upload: ", "Failled");
                                                  }
                                                  }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                                  @Override
                                                  public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                                  // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
                                                  // ...
                                                  Log.e("Data Upload: ", "success");
                                                  Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                                  result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                                  @Override
                                                  public void onSuccess(Uri uri) {
                                                  String downloadLink = uri.toString();
                                                  Log.e("download url : ", downloadLink);
                                                  }
                                                  });

                                                  pd.dismiss();

                                                  }
                                                  });

                                                  }else {
                                                  Toast.makeText(getApplicationContext(),"No Image Selected", Toast.LENGTH_SHORT).show();
                                                  }
                                                  }

                                                  @Override
                                                  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                                                  super.onActivityResult(requestCode, resultCode, data);

                                                  Bitmap bitmap = null;
                                                  if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
                                                  imageUri = data.getData();
                                                  try {
                                                  bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri);
                                                  _profilePicture1.setImageBitmap(bitmap);
                                                  _profilePicture1.setDrawingCacheEnabled(true);
                                                  _profilePicture1.buildDrawingCache();
                                                  } catch (IOException e) {
                                                  e.printStackTrace();
                                                  }

                                                  if (uploadTask != null && uploadTask.isInProgress()){
                                                  Toast.makeText(mContext,"Upload in Progress!", Toast.LENGTH_SHORT).show();
                                                  }
                                                  else {
                                                  try{
                                                  uploadImage();
                                                  }catch (Exception e){
                                                  e.printStackTrace();
                                                  }
                                                  }
                                                  }
                                                  }





                                                  share|improve this answer




























                                                    1














                                                    //upload button onClick
                                                    public void uploadImage(View view){
                                                    openImage()
                                                    }

                                                    private Uri imageUri;

                                                    ProgressDialog pd;

                                                    //Call open Image from any onClick Listener
                                                    private void openImage() {
                                                    Intent intent = new Intent();
                                                    intent.setType("image/*");
                                                    intent.setAction(Intent.ACTION_GET_CONTENT);
                                                    startActivityForResult(intent,IMAGE_REQUEST);
                                                    }

                                                    private void uploadImage(){
                                                    pd = new ProgressDialog(mContext);
                                                    pd.setMessage("Uploading...");
                                                    pd.show();

                                                    if (imageUri != null){
                                                    final StorageReference fileReference = storageReference.child(userID
                                                    + "."+"jpg");

                                                    // Get the data from an ImageView as bytes
                                                    _profilePicture.setDrawingCacheEnabled(true);
                                                    _profilePicture.buildDrawingCache();

                                                    //Bitmap bitmap = ((BitmapDrawable) _profilePicture.getDrawable()).getBitmap();

                                                    Bitmap bitmap = null;
                                                    try {
                                                    bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                                                    } catch (IOException e) {
                                                    e.printStackTrace();
                                                    }

                                                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                                                    bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
                                                    byte data = baos.toByteArray();

                                                    UploadTask uploadTask = fileReference.putBytes(data);
                                                    uploadTask.addOnFailureListener(new OnFailureListener() {
                                                    @Override
                                                    public void onFailure(@NonNull Exception exception) {
                                                    // Handle unsuccessful uploads
                                                    pd.dismiss();
                                                    Log.e("Data Upload: ", "Failled");
                                                    }
                                                    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                                    @Override
                                                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                                    // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
                                                    // ...
                                                    Log.e("Data Upload: ", "success");
                                                    Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                                    result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                                    @Override
                                                    public void onSuccess(Uri uri) {
                                                    String downloadLink = uri.toString();
                                                    Log.e("download url : ", downloadLink);
                                                    }
                                                    });

                                                    pd.dismiss();

                                                    }
                                                    });

                                                    }else {
                                                    Toast.makeText(getApplicationContext(),"No Image Selected", Toast.LENGTH_SHORT).show();
                                                    }
                                                    }

                                                    @Override
                                                    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                                                    super.onActivityResult(requestCode, resultCode, data);

                                                    Bitmap bitmap = null;
                                                    if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
                                                    imageUri = data.getData();
                                                    try {
                                                    bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri);
                                                    _profilePicture1.setImageBitmap(bitmap);
                                                    _profilePicture1.setDrawingCacheEnabled(true);
                                                    _profilePicture1.buildDrawingCache();
                                                    } catch (IOException e) {
                                                    e.printStackTrace();
                                                    }

                                                    if (uploadTask != null && uploadTask.isInProgress()){
                                                    Toast.makeText(mContext,"Upload in Progress!", Toast.LENGTH_SHORT).show();
                                                    }
                                                    else {
                                                    try{
                                                    uploadImage();
                                                    }catch (Exception e){
                                                    e.printStackTrace();
                                                    }
                                                    }
                                                    }
                                                    }





                                                    share|improve this answer


























                                                      1












                                                      1








                                                      1







                                                      //upload button onClick
                                                      public void uploadImage(View view){
                                                      openImage()
                                                      }

                                                      private Uri imageUri;

                                                      ProgressDialog pd;

                                                      //Call open Image from any onClick Listener
                                                      private void openImage() {
                                                      Intent intent = new Intent();
                                                      intent.setType("image/*");
                                                      intent.setAction(Intent.ACTION_GET_CONTENT);
                                                      startActivityForResult(intent,IMAGE_REQUEST);
                                                      }

                                                      private void uploadImage(){
                                                      pd = new ProgressDialog(mContext);
                                                      pd.setMessage("Uploading...");
                                                      pd.show();

                                                      if (imageUri != null){
                                                      final StorageReference fileReference = storageReference.child(userID
                                                      + "."+"jpg");

                                                      // Get the data from an ImageView as bytes
                                                      _profilePicture.setDrawingCacheEnabled(true);
                                                      _profilePicture.buildDrawingCache();

                                                      //Bitmap bitmap = ((BitmapDrawable) _profilePicture.getDrawable()).getBitmap();

                                                      Bitmap bitmap = null;
                                                      try {
                                                      bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                                                      } catch (IOException e) {
                                                      e.printStackTrace();
                                                      }

                                                      ByteArrayOutputStream baos = new ByteArrayOutputStream();
                                                      bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
                                                      byte data = baos.toByteArray();

                                                      UploadTask uploadTask = fileReference.putBytes(data);
                                                      uploadTask.addOnFailureListener(new OnFailureListener() {
                                                      @Override
                                                      public void onFailure(@NonNull Exception exception) {
                                                      // Handle unsuccessful uploads
                                                      pd.dismiss();
                                                      Log.e("Data Upload: ", "Failled");
                                                      }
                                                      }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                                      @Override
                                                      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                                      // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
                                                      // ...
                                                      Log.e("Data Upload: ", "success");
                                                      Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                                      result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                                      @Override
                                                      public void onSuccess(Uri uri) {
                                                      String downloadLink = uri.toString();
                                                      Log.e("download url : ", downloadLink);
                                                      }
                                                      });

                                                      pd.dismiss();

                                                      }
                                                      });

                                                      }else {
                                                      Toast.makeText(getApplicationContext(),"No Image Selected", Toast.LENGTH_SHORT).show();
                                                      }
                                                      }

                                                      @Override
                                                      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                                                      super.onActivityResult(requestCode, resultCode, data);

                                                      Bitmap bitmap = null;
                                                      if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
                                                      imageUri = data.getData();
                                                      try {
                                                      bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri);
                                                      _profilePicture1.setImageBitmap(bitmap);
                                                      _profilePicture1.setDrawingCacheEnabled(true);
                                                      _profilePicture1.buildDrawingCache();
                                                      } catch (IOException e) {
                                                      e.printStackTrace();
                                                      }

                                                      if (uploadTask != null && uploadTask.isInProgress()){
                                                      Toast.makeText(mContext,"Upload in Progress!", Toast.LENGTH_SHORT).show();
                                                      }
                                                      else {
                                                      try{
                                                      uploadImage();
                                                      }catch (Exception e){
                                                      e.printStackTrace();
                                                      }
                                                      }
                                                      }
                                                      }





                                                      share|improve this answer













                                                      //upload button onClick
                                                      public void uploadImage(View view){
                                                      openImage()
                                                      }

                                                      private Uri imageUri;

                                                      ProgressDialog pd;

                                                      //Call open Image from any onClick Listener
                                                      private void openImage() {
                                                      Intent intent = new Intent();
                                                      intent.setType("image/*");
                                                      intent.setAction(Intent.ACTION_GET_CONTENT);
                                                      startActivityForResult(intent,IMAGE_REQUEST);
                                                      }

                                                      private void uploadImage(){
                                                      pd = new ProgressDialog(mContext);
                                                      pd.setMessage("Uploading...");
                                                      pd.show();

                                                      if (imageUri != null){
                                                      final StorageReference fileReference = storageReference.child(userID
                                                      + "."+"jpg");

                                                      // Get the data from an ImageView as bytes
                                                      _profilePicture.setDrawingCacheEnabled(true);
                                                      _profilePicture.buildDrawingCache();

                                                      //Bitmap bitmap = ((BitmapDrawable) _profilePicture.getDrawable()).getBitmap();

                                                      Bitmap bitmap = null;
                                                      try {
                                                      bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                                                      } catch (IOException e) {
                                                      e.printStackTrace();
                                                      }

                                                      ByteArrayOutputStream baos = new ByteArrayOutputStream();
                                                      bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
                                                      byte data = baos.toByteArray();

                                                      UploadTask uploadTask = fileReference.putBytes(data);
                                                      uploadTask.addOnFailureListener(new OnFailureListener() {
                                                      @Override
                                                      public void onFailure(@NonNull Exception exception) {
                                                      // Handle unsuccessful uploads
                                                      pd.dismiss();
                                                      Log.e("Data Upload: ", "Failled");
                                                      }
                                                      }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                                      @Override
                                                      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                                      // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
                                                      // ...
                                                      Log.e("Data Upload: ", "success");
                                                      Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                                                      result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                                      @Override
                                                      public void onSuccess(Uri uri) {
                                                      String downloadLink = uri.toString();
                                                      Log.e("download url : ", downloadLink);
                                                      }
                                                      });

                                                      pd.dismiss();

                                                      }
                                                      });

                                                      }else {
                                                      Toast.makeText(getApplicationContext(),"No Image Selected", Toast.LENGTH_SHORT).show();
                                                      }
                                                      }

                                                      @Override
                                                      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                                                      super.onActivityResult(requestCode, resultCode, data);

                                                      Bitmap bitmap = null;
                                                      if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
                                                      imageUri = data.getData();
                                                      try {
                                                      bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri);
                                                      _profilePicture1.setImageBitmap(bitmap);
                                                      _profilePicture1.setDrawingCacheEnabled(true);
                                                      _profilePicture1.buildDrawingCache();
                                                      } catch (IOException e) {
                                                      e.printStackTrace();
                                                      }

                                                      if (uploadTask != null && uploadTask.isInProgress()){
                                                      Toast.makeText(mContext,"Upload in Progress!", Toast.LENGTH_SHORT).show();
                                                      }
                                                      else {
                                                      try{
                                                      uploadImage();
                                                      }catch (Exception e){
                                                      e.printStackTrace();
                                                      }
                                                      }
                                                      }
                                                      }






                                                      share|improve this answer












                                                      share|improve this answer



                                                      share|improve this answer










                                                      answered Nov 13 '18 at 3:25









                                                      Atiar TalukdarAtiar Talukdar

                                                      448513




                                                      448513























                                                          1














                                                          taskSnapshot.**getDownloadUrl**().toString(); //deprecated and removed


                                                          use below code for downloading Url



                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" + "abc_10123" + ".jpg");

                                                          profileImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
                                                          {
                                                          @Override
                                                          public void onSuccess(Uri downloadUrl)
                                                          {
                                                          //do something with downloadurl
                                                          }
                                                          });





                                                          share|improve this answer


























                                                          • yes. it needs to be made final. please mark as solution if it helps you

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:37











                                                          • final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:40











                                                          • not all heroes wear capes

                                                            – martinseal1987
                                                            Jun 7 '18 at 19:42
















                                                          1














                                                          taskSnapshot.**getDownloadUrl**().toString(); //deprecated and removed


                                                          use below code for downloading Url



                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" + "abc_10123" + ".jpg");

                                                          profileImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
                                                          {
                                                          @Override
                                                          public void onSuccess(Uri downloadUrl)
                                                          {
                                                          //do something with downloadurl
                                                          }
                                                          });





                                                          share|improve this answer


























                                                          • yes. it needs to be made final. please mark as solution if it helps you

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:37











                                                          • final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:40











                                                          • not all heroes wear capes

                                                            – martinseal1987
                                                            Jun 7 '18 at 19:42














                                                          1












                                                          1








                                                          1







                                                          taskSnapshot.**getDownloadUrl**().toString(); //deprecated and removed


                                                          use below code for downloading Url



                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" + "abc_10123" + ".jpg");

                                                          profileImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
                                                          {
                                                          @Override
                                                          public void onSuccess(Uri downloadUrl)
                                                          {
                                                          //do something with downloadurl
                                                          }
                                                          });





                                                          share|improve this answer















                                                          taskSnapshot.**getDownloadUrl**().toString(); //deprecated and removed


                                                          use below code for downloading Url



                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" + "abc_10123" + ".jpg");

                                                          profileImageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
                                                          {
                                                          @Override
                                                          public void onSuccess(Uri downloadUrl)
                                                          {
                                                          //do something with downloadurl
                                                          }
                                                          });






                                                          share|improve this answer














                                                          share|improve this answer



                                                          share|improve this answer








                                                          edited Jan 3 at 16:47









                                                          Community

                                                          11




                                                          11










                                                          answered May 29 '18 at 13:54









                                                          Muhammad SaadMuhammad Saad

                                                          382420




                                                          382420













                                                          • yes. it needs to be made final. please mark as solution if it helps you

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:37











                                                          • final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:40











                                                          • not all heroes wear capes

                                                            – martinseal1987
                                                            Jun 7 '18 at 19:42



















                                                          • yes. it needs to be made final. please mark as solution if it helps you

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:37











                                                          • final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                            – Muhammad Saad
                                                            May 30 '18 at 9:40











                                                          • not all heroes wear capes

                                                            – martinseal1987
                                                            Jun 7 '18 at 19:42

















                                                          yes. it needs to be made final. please mark as solution if it helps you

                                                          – Muhammad Saad
                                                          May 30 '18 at 9:37





                                                          yes. it needs to be made final. please mark as solution if it helps you

                                                          – Muhammad Saad
                                                          May 30 '18 at 9:37













                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                          – Muhammad Saad
                                                          May 30 '18 at 9:40





                                                          final StorageReference profileImageRef= FirebaseStorage.getInstance().getReference("profilepics/" +" abc_10123" + ".jpg");

                                                          – Muhammad Saad
                                                          May 30 '18 at 9:40













                                                          not all heroes wear capes

                                                          – martinseal1987
                                                          Jun 7 '18 at 19:42





                                                          not all heroes wear capes

                                                          – martinseal1987
                                                          Jun 7 '18 at 19:42











                                                          1














                                                          I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as



                                                           someTask.getResult().getMetadata().getReference().getDownloadUrl().toString();


                                                          hope this helps!






                                                          share|improve this answer




























                                                            1














                                                            I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as



                                                             someTask.getResult().getMetadata().getReference().getDownloadUrl().toString();


                                                            hope this helps!






                                                            share|improve this answer


























                                                              1












                                                              1








                                                              1







                                                              I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as



                                                               someTask.getResult().getMetadata().getReference().getDownloadUrl().toString();


                                                              hope this helps!






                                                              share|improve this answer













                                                              I'm using Firebase Storage API version 16.0.5 and the task has to be referenced as



                                                               someTask.getResult().getMetadata().getReference().getDownloadUrl().toString();


                                                              hope this helps!







                                                              share|improve this answer












                                                              share|improve this answer



                                                              share|improve this answer










                                                              answered Jan 17 at 2:46









                                                              LeleMarieCLeleMarieC

                                                              358149




                                                              358149























                                                                  0














                                                                  for latest version try



                                                                  profileImageUrl = taskSnapshot.getStorage().getDownloadUrl().toString();





                                                                  share|improve this answer




























                                                                    0














                                                                    for latest version try



                                                                    profileImageUrl = taskSnapshot.getStorage().getDownloadUrl().toString();





                                                                    share|improve this answer


























                                                                      0












                                                                      0








                                                                      0







                                                                      for latest version try



                                                                      profileImageUrl = taskSnapshot.getStorage().getDownloadUrl().toString();





                                                                      share|improve this answer













                                                                      for latest version try



                                                                      profileImageUrl = taskSnapshot.getStorage().getDownloadUrl().toString();






                                                                      share|improve this answer












                                                                      share|improve this answer



                                                                      share|improve this answer










                                                                      answered Jun 5 '18 at 13:58









                                                                      parag pawarparag pawar

                                                                      13511




                                                                      13511























                                                                          0














                                                                          Try using this:



                                                                          taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()





                                                                          share|improve this answer






























                                                                            0














                                                                            Try using this:



                                                                            taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()





                                                                            share|improve this answer




























                                                                              0












                                                                              0








                                                                              0







                                                                              Try using this:



                                                                              taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()





                                                                              share|improve this answer















                                                                              Try using this:



                                                                              taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()






                                                                              share|improve this answer














                                                                              share|improve this answer



                                                                              share|improve this answer








                                                                              edited Aug 12 '18 at 20:13









                                                                              Kim

                                                                              1,4911228




                                                                              1,4911228










                                                                              answered Aug 12 '18 at 19:45









                                                                              pratyush kumarpratyush kumar

                                                                              11




                                                                              11























                                                                                  -1














                                                                                  I still having this error. What might be wrong? I already changed the permissions, and users to anonymous.



                                                                                  enter image description here






                                                                                  share|improve this answer




























                                                                                    -1














                                                                                    I still having this error. What might be wrong? I already changed the permissions, and users to anonymous.



                                                                                    enter image description here






                                                                                    share|improve this answer


























                                                                                      -1












                                                                                      -1








                                                                                      -1







                                                                                      I still having this error. What might be wrong? I already changed the permissions, and users to anonymous.



                                                                                      enter image description here






                                                                                      share|improve this answer













                                                                                      I still having this error. What might be wrong? I already changed the permissions, and users to anonymous.



                                                                                      enter image description here







                                                                                      share|improve this answer












                                                                                      share|improve this answer



                                                                                      share|improve this answer










                                                                                      answered Sep 21 '18 at 0:13









                                                                                      RicharddRichardd

                                                                                      98110




                                                                                      98110






























                                                                                          draft saved

                                                                                          draft discarded




















































                                                                                          Thanks for contributing an answer to Stack Overflow!


                                                                                          • Please be sure to answer the question. Provide details and share your research!

                                                                                          But avoid



                                                                                          • Asking for help, clarification, or responding to other answers.

                                                                                          • Making statements based on opinion; back them up with references or personal experience.


                                                                                          To learn more, see our tips on writing great answers.




                                                                                          draft saved


                                                                                          draft discarded














                                                                                          StackExchange.ready(
                                                                                          function () {
                                                                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50585334%2ftasksnapshot-getdownloadurl-method-not-working%23new-answer', 'question_page');
                                                                                          }
                                                                                          );

                                                                                          Post as a guest















                                                                                          Required, but never shown





















































                                                                                          Required, but never shown














                                                                                          Required, but never shown












                                                                                          Required, but never shown







                                                                                          Required, but never shown

































                                                                                          Required, but never shown














                                                                                          Required, but never shown












                                                                                          Required, but never shown







                                                                                          Required, but never shown







                                                                                          Popular posts from this blog

                                                                                          Monofisismo

                                                                                          Angular Downloading a file using contenturl with Basic Authentication

                                                                                          Olmecas