Reputation: 123
I am getting a
java.lang.IllegalStateException: Task is not yet complete
error at the line val result = url.result
.
What's going wrong here?
Here's my code:
riversRef.putFile(filePath!!).addOnSuccessListener(
{ taskSnapshot ->
progressDial.dismiss()
Toast.makeText(this,"Successfully uploaded",Toast.LENGTH_SHORT).show()
val url = taskSnapshot.storage.downloadUrl
val result = url.result // ERROR occurs here !!!
val imagePath = result.toString()
mstorage!!.push().setValue(imagePath)
})
.addOnFailureListener( {
Toast.makeText(this,"Upload Failed",Toast.LENGTH_SHORT).show()
})
.addOnProgressListener {
val progress = (100.0*it.bytesTransferred/it.totalByteCount)
progressDial.setMessage("Uploaded "+progress+"%")
}
Upvotes: 1
Views: 1954
Reputation: 524
put while ((!uri.isComplete())) like this.
reference.putFile(file).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
toast("Entered success listner");
Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
while ((!uri.isComplete()));
Uri url = uri.getResult();
databaseReference = FirebaseDatabase.getInstance().getReference("uploads");
PDFDoc uploadpdf = new PDFDoc(name.getText().toString(), url.toString());
databaseReference.child(databaseReference.push().getKey()).setValue(uploadpdf);
toast("Uploaded to database");
progressDialog.dismiss();
}
})
this worked for me :)
Upvotes: 2