Skip to content

Commit 14e78ec

Browse files
jamesdanielsdavideast
authored andcommitted
fix(afs): workarounds for firebase-js-sdk #605 and #608 (#1540)
1 parent c2df603 commit 14e78ec

File tree

4 files changed

+1045
-482
lines changed

4 files changed

+1045
-482
lines changed

src/firestore/firestore.spec.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ describe('AngularFirestore', () => {
3333
})();
3434
});
3535

36-
afterEach(async (done) => {
37-
await app.delete();
36+
afterEach(done => {
37+
// can't await here https://github.com/firebase/firebase-js-sdk/issues/605
38+
app.delete();
3839
done();
3940
});
4041

src/firestore/firestore.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import { FirebaseFirestore, CollectionReference, DocumentReference } from '@fire
44
import { Observable } from 'rxjs/Observable';
55
import { Subscriber } from 'rxjs/Subscriber';
66
import { from } from 'rxjs/observable/from';
7+
import { of } from 'rxjs/observable/of';
78
import 'rxjs/add/operator/map';
9+
import 'rxjs/add/operator/catch';
810

911
import { FirebaseOptions } from '@firebase/app-types';
1012
import { Injectable, Inject, Optional } from '@angular/core';
@@ -118,11 +120,11 @@ export class AngularFirestore {
118120
return app.firestore();
119121
});
120122

121-
this.persistenceEnabled$ = zone.runOutsideAngular(() => {
122-
return shouldEnablePersistence ?
123-
from(this.firestore.enablePersistence().then(() => true, () => false)) :
124-
from(new Promise((res, rej) => { res(false); }));
125-
});
123+
this.persistenceEnabled$ = zone.runOutsideAngular(() =>
124+
shouldEnablePersistence ? from(this.firestore.enablePersistence().then(() => true, () => false))
125+
: of(false)
126+
)
127+
.catch(() => of(false)); // https://github.com/firebase/firebase-js-sdk/issues/608
126128
}
127129

128130
/**

tools/build.js

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const GLOBALS = {
3232
'rxjs/operator/take': 'Rx.Observable.prototype',
3333
'rxjs/operator/toArray': 'Rx.Observable.prototype',
3434
'rxjs/operator/toPromise': 'Rx.Observable.prototype',
35+
'rxjs/add/operator/catch': 'Rx.Observable.prototype',
3536
'rxjs/add/operator/first': 'Rx.Observable.prototype',
3637
'rxjs/add/operator/map': 'Rx.Observable.prototype',
3738
'rxjs/add/operator/scan': 'Rx.Observable.prototype',

0 commit comments

Comments
 (0)