codelab-friendlychat-android icon indicating copy to clipboard operation
codelab-friendlychat-android copied to clipboard

Why my getDownloadUrl() has error ?

Open adibsyahmi17 opened this issue 3 years ago • 5 comments

@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());

                    }

adibsyahmi17 avatar May 26 '22 16:05 adibsyahmi17

@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.

thatfiredev avatar May 26 '22 17:05 thatfiredev

@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

adibsyahmi17 avatar May 26 '22 17:05 adibsyahmi17

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

thatfiredev avatar May 26 '22 18:05 thatfiredev

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

adibsyahmi17 avatar May 26 '22 20:05 adibsyahmi17

@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
        }
    });
}

thatfiredev avatar May 27 '22 17:05 thatfiredev