Skip to content

Why my getDownloadUrl() has error ?  #196

Open

Description

@adibsyahmi17

@OverRide
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@OverRide
public void run() {
mProgressBar.setProgress(0);
}
}, 500);

                        Toast.makeText(AddSolatPage.this, "Upload successful", Toast.LENGTH_LONG).show();
                        Upload upload = new Upload(solatTitle.getText().toString().trim(),
                                taskSnapshot.getDownloadUrl().toString());

                    }

Activity

  1. thatfiredev commented on May 26, 2022

    @thatfiredev
    Member

    @adibsyahmi17 unfortunately, TaskSnapshot does not have a getDownloadUrl() method. You'll need to call that method on the StorageReference that you created to upload the file.

  2. adibsyahmi17 commented on May 26, 2022

    @adibsyahmi17
    Author

    @adibsyahmi17 unfortunately, TaskSnapshot does not have a getDownloadUrl() method. You'll need to call that method on the StorageReference that you created to upload the file.

    can you show me how because this is my first time using android studio

  3. thatfiredev commented on May 26, 2022

    @thatfiredev
    Member

    @adibsyahmi17 Can you show the code where you create the StorageReference? The one that comes before this onSuccess code that you posted here.

  4. adibsyahmi17 commented on May 26, 2022

    @adibsyahmi17
    Author

    if (imageURI != null){
    StorageReference fileReference = storageReference.child(System.currentTimeMillis()
    + "." + getFileExtension(imageURI));
    fileReference.putFile(imageURI)
    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @OverRide
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
    @OverRide
    public void run() {
    mProgressBar.setProgress(0);
    }
    }, 500);

                            Toast.makeText(AddSolatPage.this, "Upload successful", Toast.LENGTH_LONG).show();
                            Upload upload = new Upload(solatTitle.getText().toString().trim(),
                                    taskSnapshot.getStorage().getDownloadUrl().toString());
    
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(AddSolatPage.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    })
                    .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
                            double progress = (100.0 * snapshot.getBytesTransferred() / snapshot.getTotalByteCount());
                            mProgressBar.setProgress((int) progress);
                        }
                    });
        }else {
            Toast.makeText(this,"No file selected",Toast.LENGTH_SHORT).show();
        }
    

    this is my code

  5. thatfiredev commented on May 27, 2022

    @thatfiredev
    Member

    @adibsyahmi17 Thanks for providing the code. You'll need to change your onSuccess method to reuse the StorageReference that you created:

    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mProgressBar.setProgress(0);
            }
        }, 500);
    
        Toast.makeText(AddSolatPage.this, "Upload successful", Toast.LENGTH_LONG).show();
        fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                String url = uri.toString();
                Upload upload = new Upload(solatTitle.getText().toString().trim(), url);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
                // Handle any errors
            }
        });
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions