Skip to content

Commit 570c0a7

Browse files
jamesdanielsdavideast
authored andcommitted
feat(firestore): Support Firestore Settings, timestampsInSnapshots default to true (#1629)
1 parent b99bfa3 commit 570c0a7

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

Diff for: src/firestore/firestore.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
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';
33

44
import { Observable, Subscriber } from 'rxjs';
55
import { map, catchError } from 'rxjs/operators';
@@ -18,7 +18,9 @@ import { FirebaseAppConfigToken, FirebaseOptionsToken, FirebaseAppNameToken, _fi
1818
* The value of this token determines whether or not the firestore will have persistance enabled
1919
*/
2020
export const EnablePersistenceToken = new InjectionToken<boolean>('angularfire2.enableFirestorePersistence');
21+
export const FirestoreSettingsToken = new InjectionToken<Settings>('angularfire2.firestore.settings');
2122

23+
export const DefaultFirestoreSettings = {timestampsInSnapshots: true} as Settings;
2224

2325
/**
2426
* A utility methods for associating a collection reference with
@@ -110,13 +112,16 @@ export class AngularFirestore {
110112
@Optional() @Inject(FirebaseAppConfigToken) config:FirebaseAppConfig,
111113
@Optional() @Inject(FirebaseAppNameToken) name:string,
112114
@Optional() @Inject(EnablePersistenceToken) shouldEnablePersistence: boolean,
115+
@Optional() @Inject(FirestoreSettingsToken) settings: Settings,
113116
@Inject(PLATFORM_ID) platformId: Object,
114117
zone: NgZone
115118
) {
116119
this.scheduler = new FirebaseZoneScheduler(zone, platformId);
117120
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;
120125
});
121126

122127
this.persistenceEnabled$ = zone.runOutsideAngular(() =>

0 commit comments

Comments
 (0)