Skip to content

Commit a9cf1ca

Browse files
committed
feat(afs): Support Firebase 5.5 and Firestore PersistenceSettings
1 parent d6f59c7 commit a9cf1ca

File tree

5 files changed

+70
-66
lines changed

5 files changed

+70
-66
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angularfire2",
3-
"version": "5.0.2",
3+
"version": "5.1.0",
44
"description": "The official library of Firebase and Angular.",
55
"private": true,
66
"scripts": {
@@ -12,7 +12,7 @@
1212
"delayed_karma": "sleep 10 && karma start",
1313
"build": "rm -rf dist && node tools/build.js",
1414
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1",
15-
"build:wrapper": "npm i --prefix wrapper && VERSION=5.0.2 npm run --prefix wrapper build"
15+
"build:wrapper": "npm i --prefix wrapper && VERSION=5.1.0 npm run --prefix wrapper build"
1616
},
1717
"keywords": [
1818
"angular",
@@ -35,7 +35,7 @@
3535
"@angular/core": "^6.0.0",
3636
"@angular/platform-browser": "^6.0.0",
3737
"@angular/platform-browser-dynamic": "^6.0.0",
38-
"firebase": "^5.0.3",
38+
"firebase": "^5.5.0",
3939
"rxjs": "^6.0.0",
4040
"ws": "^3.3.2",
4141
"xhr2": "^0.1.4",

src/firestore/firestore.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('AngularFirestore', () => {
2323
TestBed.configureTestingModule({
2424
imports: [
2525
AngularFireModule.initializeApp(COMMON_CONFIG),
26-
AngularFirestoreModule.enablePersistence()
26+
AngularFirestoreModule.enablePersistence({experimentalTabSynchronization: true})
2727
]
2828
});
2929
inject([FirebaseApp, AngularFirestore], (_app: FirebaseApp, _afs: AngularFirestore) => {

src/firestore/firestore.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { InjectionToken, NgZone, PLATFORM_ID, Injectable, Inject, Optional } from '@angular/core';
22

33
import { Observable, of, from } from 'rxjs';
4-
import { catchError } from 'rxjs/operators';
5-
import { firestore } from 'firebase';
64

7-
import { Settings, CollectionReference, DocumentReference, QueryFn, AssociatedReference } from './interfaces';
5+
import { Settings, PersistenceSettings, CollectionReference, DocumentReference, QueryFn, AssociatedReference } from './interfaces';
86
import { AngularFirestoreDocument } from './document/document';
97
import { AngularFirestoreCollection } from './collection/collection';
108

@@ -15,6 +13,7 @@ import { isPlatformBrowser } from '@angular/common';
1513
* The value of this token determines whether or not the firestore will have persistance enabled
1614
*/
1715
export const EnablePersistenceToken = new InjectionToken<boolean>('angularfire2.enableFirestorePersistence');
16+
export const PersistenceSettingsToken = new InjectionToken<PersistenceSettings|undefined>('angularfire2.firestore.persistenceSettings');
1817
export const FirestoreSettingsToken = new InjectionToken<Settings>('angularfire2.firestore.settings');
1918

2019
export const DefaultFirestoreSettings = {timestampsInSnapshots: true} as Settings;
@@ -108,6 +107,7 @@ export class AngularFirestore {
108107
@Inject(FirebaseOptionsToken) options:FirebaseOptions,
109108
@Optional() @Inject(FirebaseNameOrConfigToken) nameOrConfig:string|FirebaseAppConfig|undefined,
110109
@Optional() @Inject(EnablePersistenceToken) shouldEnablePersistence: boolean,
110+
@Optional() @Inject(PersistenceSettingsToken) persistenceSettings: PersistenceSettings|undefined,
111111
@Optional() @Inject(FirestoreSettingsToken) settings: Settings,
112112
@Inject(PLATFORM_ID) platformId: Object,
113113
zone: NgZone
@@ -125,7 +125,7 @@ export class AngularFirestore {
125125
// https://github.com/firebase/firebase-js-sdk/issues/608
126126
const enablePersistence = () => {
127127
try {
128-
return from(this.firestore.enablePersistence().then(() => true, () => false));
128+
return from(this.firestore.enablePersistence(persistenceSettings).then(() => true, () => false));
129129
} catch(e) {
130130
return of(false);
131131
}

src/firestore/interfaces.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Subscriber } from 'rxjs';
2-
import { firestore } from 'firebase';
2+
import { firestore } from 'firebase/app';
33

44
export type Settings = firestore.Settings;
55
export type CollectionReference = firestore.CollectionReference;
66
export type DocumentReference = firestore.DocumentReference;
7-
7+
export type PersistenceSettings = firestore.PersistenceSettings;
88
export type DocumentChangeType = firestore.DocumentChangeType;
99
export type SnapshotOptions = firestore.SnapshotOptions;
1010
export type FieldPath = firestore.FieldPath;

yarn.lock

Lines changed: 60 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -53,63 +53,63 @@
5353
version "0.3.2"
5454
resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.3.2.tgz#a92dc544290e2893bd8c02a81e684dae3d8e7c85"
5555

56-
"@firebase/app@0.3.3":
57-
version "0.3.3"
58-
resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.3.3.tgz#cb8df89495e4409e92ab30c0068b9e0641a6db81"
56+
"@firebase/app@0.3.4":
57+
version "0.3.4"
58+
resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.3.4.tgz#610c931bac191598b383812b36c1d2cc52316d31"
5959
dependencies:
6060
"@firebase/app-types" "0.3.2"
61-
"@firebase/util" "0.2.1"
61+
"@firebase/util" "0.2.2"
6262
dom-storage "2.1.0"
6363
tslib "1.9.0"
6464
xmlhttprequest "1.8.0"
6565

66-
"@firebase/auth-types@0.3.3":
67-
version "0.3.3"
68-
resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.3.3.tgz#950a68bdae1e1e37ece054ff69ee0082c5ecabab"
66+
"@firebase/auth-types@0.3.4":
67+
version "0.3.4"
68+
resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.3.4.tgz#253b1b2d9b520a0b945d4617c8418f0f19a4159f"
6969

70-
"@firebase/auth@0.5.3":
71-
version "0.5.3"
72-
resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.5.3.tgz#4f0d83cd5a7c173d3a7a06f904bb1084acd8a0c4"
70+
"@firebase/auth@0.7.8":
71+
version "0.7.8"
72+
resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.7.8.tgz#3725824f8fd9c12c5fc497b41da1e5ce587b98d1"
7373
dependencies:
74-
"@firebase/auth-types" "0.3.3"
74+
"@firebase/auth-types" "0.3.4"
7575

7676
"@firebase/database-types@0.3.2":
7777
version "0.3.2"
7878
resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.3.2.tgz#70611a64dd460e0e253c7427f860d56a1afd86fe"
7979

80-
"@firebase/database@0.3.3":
81-
version "0.3.3"
82-
resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.3.3.tgz#01123d4e0f8cb020e685ead27d795ef8794b2991"
80+
"@firebase/database@0.3.6":
81+
version "0.3.6"
82+
resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.3.6.tgz#95167bc5d8454ade1619e6b74b823b08370ff2d1"
8383
dependencies:
8484
"@firebase/database-types" "0.3.2"
8585
"@firebase/logger" "0.1.1"
86-
"@firebase/util" "0.2.1"
86+
"@firebase/util" "0.2.2"
8787
faye-websocket "0.11.1"
8888
tslib "1.9.0"
8989

90-
"@firebase/firestore-types@0.4.3":
91-
version "0.4.3"
92-
resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.4.3.tgz#0baa4f68aa8889474f582320af577f1e9a78fab6"
90+
"@firebase/firestore-types@0.7.0":
91+
version "0.7.0"
92+
resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.7.0.tgz#bded7892868cf6b189a121d0f0cec468f1609995"
9393

94-
"@firebase/firestore@0.5.4":
95-
version "0.5.4"
96-
resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.5.4.tgz#26f67fa038ffd74ef849019728c59d4a5590a324"
94+
"@firebase/firestore@0.8.4":
95+
version "0.8.4"
96+
resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.8.4.tgz#2cb35180c002b4ab49e822239c3868c16a645d94"
9797
dependencies:
98-
"@firebase/firestore-types" "0.4.3"
98+
"@firebase/firestore-types" "0.7.0"
9999
"@firebase/logger" "0.1.1"
100-
"@firebase/webchannel-wrapper" "0.2.8"
101-
grpc "1.11.3"
100+
"@firebase/webchannel-wrapper" "0.2.11"
101+
grpc "1.13.1"
102102
tslib "1.9.0"
103103

104-
"@firebase/functions-types@0.1.3":
105-
version "0.1.3"
106-
resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.1.3.tgz#17bc08a51f92b4eb5d1498f18b363f6c0e3a2df8"
104+
"@firebase/functions-types@0.2.0":
105+
version "0.2.0"
106+
resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.2.0.tgz#936d3f77957431a8ef1817975fee26464575802b"
107107

108-
"@firebase/functions@0.2.4":
109-
version "0.2.4"
110-
resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.2.4.tgz#4d7acbc1feb8a1503f12072e40ea797d42bdb6b7"
108+
"@firebase/functions@0.3.1":
109+
version "0.3.1"
110+
resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.3.1.tgz#9b25e84176d4395946ed7a90fec9fdef8032f56a"
111111
dependencies:
112-
"@firebase/functions-types" "0.1.3"
112+
"@firebase/functions-types" "0.2.0"
113113
"@firebase/messaging-types" "0.2.3"
114114
isomorphic-fetch "2.2.1"
115115
tslib "1.9.0"
@@ -122,12 +122,12 @@
122122
version "0.2.3"
123123
resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.2.3.tgz#ed2949129dc5b3b0adff23ae1e1010bc7806f974"
124124

125-
"@firebase/messaging@0.3.4":
126-
version "0.3.4"
127-
resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.3.4.tgz#374d8e19e8fa900d81bc30f5d4e8946bd1c336a7"
125+
"@firebase/messaging@0.3.6":
126+
version "0.3.6"
127+
resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.3.6.tgz#30662779ae5b2812da090da7607e7293cfb22a8e"
128128
dependencies:
129129
"@firebase/messaging-types" "0.2.3"
130-
"@firebase/util" "0.2.1"
130+
"@firebase/util" "0.2.2"
131131
tslib "1.9.0"
132132

133133
"@firebase/polyfill@0.3.3":
@@ -149,15 +149,15 @@
149149
"@firebase/storage-types" "0.2.3"
150150
tslib "1.9.0"
151151

152-
"@firebase/util@0.2.1":
153-
version "0.2.1"
154-
resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.2.1.tgz#b59a2fbf14fce21401cbebf776a3e0260b591380"
152+
"@firebase/util@0.2.2":
153+
version "0.2.2"
154+
resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.2.2.tgz#fdd57ca21b587564c0a3a032f55092633f390a30"
155155
dependencies:
156156
tslib "1.9.0"
157157

158-
"@firebase/webchannel-wrapper@0.2.8":
159-
version "0.2.8"
160-
resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz#38a936b60b898a1ad0f3719543ff1a1031f60f8b"
158+
"@firebase/webchannel-wrapper@0.2.11":
159+
version "0.2.11"
160+
resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.11.tgz#32a853fad9974cbbc9fc766ec5699a18b22ccee6"
161161

162162
"@types/estree@0.0.39":
163163
version "0.0.39"
@@ -1897,16 +1897,16 @@ fined@^1.0.1:
18971897
object.pick "^1.2.0"
18981898
parse-filepath "^1.0.1"
18991899

1900-
firebase@^5.0.3:
1901-
version "5.0.4"
1902-
resolved "https://registry.yarnpkg.com/firebase/-/firebase-5.0.4.tgz#f367c80531c1a8a4ef82b6537b2a6bd92685e226"
1900+
firebase@^5.5.0:
1901+
version "5.5.4"
1902+
resolved "https://registry.yarnpkg.com/firebase/-/firebase-5.5.4.tgz#6c6c9c829c1c223dd6bc9c5a7805a5ebcaf36ae2"
19031903
dependencies:
1904-
"@firebase/app" "0.3.3"
1905-
"@firebase/auth" "0.5.3"
1906-
"@firebase/database" "0.3.3"
1907-
"@firebase/firestore" "0.5.4"
1908-
"@firebase/functions" "0.2.4"
1909-
"@firebase/messaging" "0.3.4"
1904+
"@firebase/app" "0.3.4"
1905+
"@firebase/auth" "0.7.8"
1906+
"@firebase/database" "0.3.6"
1907+
"@firebase/firestore" "0.8.4"
1908+
"@firebase/functions" "0.3.1"
1909+
"@firebase/messaging" "0.3.6"
19101910
"@firebase/polyfill" "0.3.3"
19111911
"@firebase/storage" "0.2.3"
19121912

@@ -2284,14 +2284,14 @@ graceful-fs@~1.2.0:
22842284
version "1.0.1"
22852285
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
22862286

2287-
grpc@1.11.3:
2288-
version "1.11.3"
2289-
resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.11.3.tgz#46093bb17702b9fc1b099789695e6f47d6487129"
2287+
grpc@1.13.1:
2288+
version "1.13.1"
2289+
resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.13.1.tgz#9b5c49d4e56309b6e3bd631f8948b7b298d88790"
22902290
dependencies:
2291-
lodash "^4.15.0"
2291+
lodash "^4.17.5"
22922292
nan "^2.0.0"
22932293
node-pre-gyp "^0.10.0"
2294-
protobufjs "^5.0.0"
2294+
protobufjs "^5.0.3"
22952295

22962296
gulp-jasmine@^2.2.1:
22972297
version "2.4.2"
@@ -3343,6 +3343,10 @@ lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.1, l
33433343
version "4.17.10"
33443344
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
33453345

3346+
lodash@^4.17.5:
3347+
version "4.17.11"
3348+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
3349+
33463350
lodash@~1.0.1:
33473351
version "1.0.2"
33483352
resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
@@ -4244,7 +4248,7 @@ promisify-call@^2.0.2:
42444248
dependencies:
42454249
with-callback "^1.0.2"
42464250

4247-
protobufjs@^5.0.0:
4251+
protobufjs@^5.0.3:
42484252
version "5.0.3"
42494253
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17"
42504254
dependencies:

0 commit comments

Comments
 (0)