@@ -3,7 +3,7 @@ import { FirebaseStorage, UploadMetadata } from '@firebase/storage-types';
3
3
import { createStorageRef , AngularFireStorageReference } from './ref' ;
4
4
import { createUploadTask , AngularFireUploadTask } from './task' ;
5
5
import { Observable } from 'rxjs/Observable' ;
6
- import { FirebaseAppConfig , FirebaseAppName , _firebaseAppFactory } from 'angularfire2' ;
6
+ import { FirebaseAppConfig , FirebaseAppName , FirebaseZoneScheduler , _firebaseAppFactory } from 'angularfire2' ;
7
7
import { FirebaseOptions } from '@firebase/app-types' ;
8
8
9
9
export const StorageBucket = new InjectionToken < string > ( 'angularfire2.storageBucket' ) ;
@@ -18,26 +18,28 @@ export const StorageBucket = new InjectionToken<string>('angularfire2.storageBuc
18
18
@Injectable ( )
19
19
export class AngularFireStorage {
20
20
public readonly storage : FirebaseStorage ;
21
+ public readonly scheduler : FirebaseZoneScheduler ;
21
22
22
23
constructor (
23
24
@Inject ( FirebaseAppConfig ) config :FirebaseOptions ,
24
25
@Optional ( ) @Inject ( FirebaseAppName ) name :string ,
25
26
@Optional ( ) @Inject ( StorageBucket ) storageBucket :string ,
26
27
zone : NgZone
27
28
) {
29
+ this . scheduler = new FirebaseZoneScheduler ( zone ) ;
28
30
this . storage = zone . runOutsideAngular ( ( ) => {
29
31
const app = _firebaseAppFactory ( config , name ) ;
30
32
return app . storage ( storageBucket || undefined ) ;
31
33
} ) ;
32
34
}
33
35
34
36
ref ( path : string ) {
35
- return createStorageRef ( this . storage . ref ( path ) ) ;
37
+ return createStorageRef ( this . storage . ref ( path ) , this . scheduler ) ;
36
38
}
37
39
38
40
upload ( path : string , data : any , metadata ?: UploadMetadata ) {
39
41
const storageRef = this . storage . ref ( path ) ;
40
- const ref = createStorageRef ( storageRef ) ;
42
+ const ref = createStorageRef ( storageRef , this . scheduler ) ;
41
43
return ref . put ( data , metadata ) ;
42
44
}
43
45
0 commit comments