Storage = function Storage(storageRef) {
      _assertStorageRef(storageRef);
      return {
        $put: function $put(file, metadata) {
          var task = storageRef.put(file, metadata);
          return _convertTask(task, $firebaseUtils);
        },
        $putString: function $putString(data, format, metadata) {
          var task = storageRef.putString(data, format, metadata);
          return _convertTask(task, $firebaseUtils);
        },
        $getDownloadURL: function $getDownloadURL() {
          return $q.when(storageRef.getDownloadURL());
        },
        $delete: function $delete() {
          return $q.when(storageRef.delete());
        },
        $getMetadata: function $getMetadata() {
          return $q.when(storageRef.getMetadata());
        },
        $updateMetadata: function $updateMetadata(object) {
          return $q.when(storageRef.updateMetadata(object));
        },
        $toString: function $toString() {
          return storageRef.toString();
        }
      };
    }
This inner constructor `Storage` allows for exporting of private methods
like _assertStorageRef, _isStorageRef, _convertTask, and _unwrapStorageSnapshot.