1
1
import { InjectionToken , NgZone , PLATFORM_ID } from '@angular/core' ;
2
- import { FirebaseFirestore , CollectionReference , DocumentReference } from '@firebase/firestore-types' ;
2
+ import { FirebaseFirestore , CollectionReference , DocumentReference , Settings } from '@firebase/firestore-types' ;
3
3
4
4
import { Observable , Subscriber } from 'rxjs' ;
5
5
import { map , catchError } from 'rxjs/operators' ;
@@ -18,7 +18,9 @@ import { FirebaseAppConfigToken, FirebaseOptionsToken, FirebaseAppNameToken, _fi
18
18
* The value of this token determines whether or not the firestore will have persistance enabled
19
19
*/
20
20
export const EnablePersistenceToken = new InjectionToken < boolean > ( 'angularfire2.enableFirestorePersistence' ) ;
21
+ export const FirestoreSettingsToken = new InjectionToken < Settings > ( 'angularfire2.firestore.settings' ) ;
21
22
23
+ export const DefaultFirestoreSettings = { timestampsInSnapshots : true } as Settings ;
22
24
23
25
/**
24
26
* A utility methods for associating a collection reference with
@@ -110,13 +112,16 @@ export class AngularFirestore {
110
112
@Optional ( ) @Inject ( FirebaseAppConfigToken ) config :FirebaseAppConfig ,
111
113
@Optional ( ) @Inject ( FirebaseAppNameToken ) name :string ,
112
114
@Optional ( ) @Inject ( EnablePersistenceToken ) shouldEnablePersistence : boolean ,
115
+ @Optional ( ) @Inject ( FirestoreSettingsToken ) settings : Settings ,
113
116
@Inject ( PLATFORM_ID ) platformId : Object ,
114
117
zone : NgZone
115
118
) {
116
119
this . scheduler = new FirebaseZoneScheduler ( zone , platformId ) ;
117
120
this . firestore = zone . runOutsideAngular ( ( ) => {
118
- const app = _firebaseAppFactory ( options , name , config ) ;
119
- return app . firestore ( ) ;
121
+ const app = _firebaseAppFactory ( config , name ) ;
122
+ const firestore = app . firestore ( ) ;
123
+ firestore . settings ( settings || DefaultFirestoreSettings ) ;
124
+ return firestore ;
120
125
} ) ;
121
126
122
127
this . persistenceEnabled$ = zone . runOutsideAngular ( ( ) =>
0 commit comments