Why my getDownloadUrl() has error ?
@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 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.
@adibsyahmi17 unfortunately, TaskSnapshot does not have a
getDownloadUrl()method. You'll need to call that method on theStorageReferencethat you created to upload the file.
can you show me how because this is my first time using android studio
@adibsyahmi17 Can you show the code where you create the StorageReference? The one that comes before this onSuccess code that you posted here.
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 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
}
});
}