Firebase obtiene la URL de descarga después de cargar correctamente la imagen en el almacenamiento de Firebase

Estoy tratando de cargar una sola imagen en Firebase Storage, luego tomar su url de descarga y asignarla a una variable.

Puedo subir mi imagen a Firebase con éxito, sin embargo, no puedo recuperar la URL de descarga. Esto es lo que ya he probado.

upload() {
    let storageRef = firebase.storage().ref();
    let success = false;

    for (let selectedFile of [(<HTMLInputElement>document.getElementById('file')).files[0]]) {
      let router = this.router;
      let af = this.af;
      let folder = this.folder;
      let path = `/${this.folder}/${selectedFile.name}`;
      var iRef = storageRef.child(path);
      iRef.put(selectedFile).then((snapshot) => {
        console.log('Uploaded a blob or file! Now storing the reference at', `/${this.folder}/images/`);
        af.list(`/${folder}/images/`).push({ path: path, filename: selectedFile.name })
      });
    }

    // This part does not work
    iRef.getDownloadURL().then((url) => {this.image = url});
    console.log('IREF IS ' + iRef)
    console.log('IMAGEURL IS ' + this.image)

  }

Los registros de la consola son estos:

    IREF IS gs://my-app-159520.appspot.com/images/Screen Shot 2017-08-14 at 12.19.01.png
    view-order.component.ts:134 IMAGEURL IS undefined
Uploaded a blob or file! Now storing the reference at /images/images/

He estado tratando de usar la referencia de iRef para obtener la URL de descarga, pero sigo recibiendo errores. Estoy tratando de tomar la url para poder asignarla a la variable this.image y luego almacenarla en mi base de datos usando otra función.

Respuestas a la pregunta(2)

Su respuesta a la pregunta