2323import android .support .v7 .app .AppCompatActivity ;
2424import android .widget .ImageView ;
2525
26+ import com .google .android .gms .tasks .Continuation ;
27+ import com .google .android .gms .tasks .OnCompleteListener ;
2628import com .google .android .gms .tasks .OnFailureListener ;
2729import com .google .android .gms .tasks .OnSuccessListener ;
30+ import com .google .android .gms .tasks .Task ;
2831import com .google .firebase .storage .FileDownloadTask ;
2932import com .google .firebase .storage .FirebaseStorage ;
3033import com .google .firebase .storage .OnPausedListener ;
@@ -179,8 +182,8 @@ public void onFailure(@NonNull Exception exception) {
179182 }).addOnSuccessListener (new OnSuccessListener <UploadTask .TaskSnapshot >() {
180183 @ Override
181184 public void onSuccess (UploadTask .TaskSnapshot taskSnapshot ) {
182- // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL .
183- Uri downloadUrl = taskSnapshot . getDownloadUrl ();
185+ // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc .
186+ // ...
184187 }
185188 });
186189 // [END upload_memory]
@@ -197,8 +200,8 @@ public void onFailure(@NonNull Exception exception) {
197200 }).addOnSuccessListener (new OnSuccessListener <UploadTask .TaskSnapshot >() {
198201 @ Override
199202 public void onSuccess (UploadTask .TaskSnapshot taskSnapshot ) {
200- // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL .
201- Uri downloadUrl = taskSnapshot . getDownloadUrl ();
203+ // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc .
204+ // ...
202205 }
203206 });
204207 // [END upload_stream]
@@ -217,8 +220,8 @@ public void onFailure(@NonNull Exception exception) {
217220 }).addOnSuccessListener (new OnSuccessListener <UploadTask .TaskSnapshot >() {
218221 @ Override
219222 public void onSuccess (UploadTask .TaskSnapshot taskSnapshot ) {
220- // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL .
221- Uri downloadUrl = taskSnapshot . getDownloadUrl ();
223+ // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc .
224+ // ...
222225 }
223226 });
224227 // [END upload_file]
@@ -295,10 +298,37 @@ public void onFailure(@NonNull Exception exception) {
295298 @ Override
296299 public void onSuccess (UploadTask .TaskSnapshot taskSnapshot ) {
297300 // Handle successful uploads on complete
298- Uri downloadUrl = taskSnapshot . getMetadata (). getDownloadUrl ();
301+ // ...
299302 }
300303 });
301304 // [END upload_complete_example]
305+
306+ // [START upload_get_download_url]
307+ final StorageReference ref = storageRef .child ("images/mountains.jpg" );
308+ uploadTask = ref .putFile (file );
309+
310+ Task <Uri > urlTask = uploadTask .continueWithTask (new Continuation <UploadTask .TaskSnapshot , Task <Uri >>() {
311+ @ Override
312+ public Task <Uri > then (@ NonNull Task <UploadTask .TaskSnapshot > task ) throws Exception {
313+ if (!task .isSuccessful ()) {
314+ throw task .getException ();
315+ }
316+
317+ // Continue with the task to get the download URL
318+ return ref .getDownloadUrl ();
319+ }
320+ }).addOnCompleteListener (new OnCompleteListener <Uri >() {
321+ @ Override
322+ public void onComplete (@ NonNull Task <Uri > task ) {
323+ if (task .isSuccessful ()) {
324+ Uri downloadUri = task .getResult ();
325+ } else {
326+ // Handle failures
327+ // ...
328+ }
329+ }
330+ });
331+ // [END upload_get_download_url]
302332 }
303333
304334 private void includesForDownloadFiles () throws IOException {
0 commit comments