@@ -3,7 +3,7 @@ import { FirebaseStorage, UploadMetadata } from '@firebase/storage-types';
33import { createStorageRef , AngularFireStorageReference } from './ref' ;
44import { createUploadTask , AngularFireUploadTask } from './task' ;
55import { Observable } from 'rxjs/Observable' ;
6- import { FirebaseAppConfig , FirebaseAppName , _firebaseAppFactory } from 'angularfire2' ;
6+ import { FirebaseAppConfig , FirebaseAppName , FirebaseZoneScheduler , _firebaseAppFactory } from 'angularfire2' ;
77import { FirebaseOptions } from '@firebase/app-types' ;
88
99export const StorageBucket = new InjectionToken < string > ( 'angularfire2.storageBucket' ) ;
@@ -18,26 +18,28 @@ export const StorageBucket = new InjectionToken<string>('angularfire2.storageBuc
1818@Injectable ( )
1919export class AngularFireStorage {
2020 public readonly storage : FirebaseStorage ;
21+ public readonly scheduler : FirebaseZoneScheduler ;
2122
2223 constructor (
2324 @Inject ( FirebaseAppConfig ) config :FirebaseOptions ,
2425 @Optional ( ) @Inject ( FirebaseAppName ) name :string ,
2526 @Optional ( ) @Inject ( StorageBucket ) storageBucket :string ,
2627 zone : NgZone
2728 ) {
29+ this . scheduler = new FirebaseZoneScheduler ( zone ) ;
2830 this . storage = zone . runOutsideAngular ( ( ) => {
2931 const app = _firebaseAppFactory ( config , name ) ;
3032 return app . storage ( storageBucket || undefined ) ;
3133 } ) ;
3234 }
3335
3436 ref ( path : string ) {
35- return createStorageRef ( this . storage . ref ( path ) ) ;
37+ return createStorageRef ( this . storage . ref ( path ) , this . scheduler ) ;
3638 }
3739
3840 upload ( path : string , data : any , metadata ?: UploadMetadata ) {
3941 const storageRef = this . storage . ref ( path ) ;
40- const ref = createStorageRef ( storageRef ) ;
42+ const ref = createStorageRef ( storageRef , this . scheduler ) ;
4143 return ref . put ( data , metadata ) ;
4244 }
4345
0 commit comments