Skip to content

Commit 664c2d6

Browse files
committed
fix(): Switching over to firebase from @firebase/*
1 parent bb1938f commit 664c2d6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+224
-319
lines changed

karma.conf.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ module.exports = function(config) {
2525
...getAngularFiles(['core','common','compiler','platform-browser','platform-browser-dynamic']),
2626

2727
'karma-test-shim.js',
28-
'node_modules/firebase/firebase.js',
28+
'node_modules/firebase/firebase-app.js',
29+
'node_modules/firebase/firebase-auth.js',
30+
'node_modules/firebase/firebase-database.js',
31+
'node_modules/firebase/firebase-firestore.js',
32+
'node_modules/firebase/firebase-functions.js',
33+
'node_modules/firebase/firebase-storage.js',
2934
'dist/packages-dist/bundles/core.umd.{js,map}',
3035
'dist/packages-dist/bundles/auth.umd.{js,map}',
3136
'dist/packages-dist/bundles/database.umd.{js,map}',

package.json

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,7 @@
3434
"@angular/core": "^6.0.0",
3535
"@angular/platform-browser": "^6.0.0",
3636
"@angular/platform-browser-dynamic": "^6.0.0",
37-
"@firebase/app": "^0.3.1",
38-
"@firebase/app-types": "^0.3.1",
39-
"@firebase/auth": "^0.5.2",
40-
"@firebase/auth-types": "^0.3.2",
41-
"@firebase/database": "^0.3.1",
42-
"@firebase/database-types": "^0.3.1",
43-
"@firebase/firestore": "^0.5.2",
44-
"@firebase/firestore-types": "^0.4.1",
45-
"@firebase/functions": "^0.2.2",
46-
"@firebase/functions-types": "^0.1.2",
47-
"@firebase/messaging-types": "^0.2.2",
48-
"@firebase/storage": "^0.2.2",
49-
"@firebase/storage-types": "^0.2.2",
37+
"firebase": "^5.0.3",
5038
"bufferutil": "^3.0.3",
5139
"rxjs": "^6.0.0",
5240
"utf-8-validate": "^4.0.0",
@@ -63,7 +51,6 @@
6351
"conventional-changelog-cli": "^1.2.0",
6452
"es6-module-loader": "^0.17.10",
6553
"es6-shim": "^0.35.0",
66-
"firebase": "^5.0.2",
6754
"fs-extra": "^4.0.0",
6855
"gulp": "^3.9.0",
6956
"gulp-jasmine": "^2.2.1",

src/auth/auth.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NgModule } from '@angular/core';
22
import { AngularFireAuth } from './auth';
3-
import '@firebase/auth';
3+
4+
import 'firebase/auth';
45

56
@NgModule({
67
providers: [ AngularFireAuth ]

src/auth/auth.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { User } from '@firebase/auth-types';
1+
import { User } from 'firebase/app';
22
import { ReflectiveInjector, Provider } from '@angular/core';
33
import { Observable, Subject } from 'rxjs'
44
import { TestBed, inject } from '@angular/core/testing';

src/auth/auth.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { FirebaseAuth, User, IdTokenResult } from '@firebase/auth-types';
2-
import { FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';
31
import { Injectable, Inject, Optional, NgZone, PLATFORM_ID } from '@angular/core';
42
import { Observable, of, from } from 'rxjs';
53
import { switchMap } from 'rxjs/operators';
4+
import { FirebaseAppConfig, FirebaseOptions } from 'angularfire2';
65

7-
import { FirebaseOptionsToken, FirebaseNameOrConfigToken, _firebaseAppFactory, FirebaseZoneScheduler } from 'angularfire2';
6+
import { User, auth } from 'firebase/app';
87

8+
import { FirebaseAuth, FirebaseOptionsToken, FirebaseNameOrConfigToken, _firebaseAppFactory, FirebaseZoneScheduler } from 'angularfire2';
99

1010
@Injectable()
1111
export class AngularFireAuth {
@@ -35,7 +35,7 @@ export class AngularFireAuth {
3535
* helper properties for getting different data associated with the token as well as all the decoded payload claims
3636
* (or null).
3737
*/
38-
public readonly idTokenResult: Observable<IdTokenResult|null>;
38+
public readonly idTokenResult: Observable<auth.IdTokenResult|null>;
3939

4040
constructor(
4141
@Inject(FirebaseOptionsToken) options:FirebaseOptions,

src/auth/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
"@angular/core": "ANGULAR_VERSION",
2323
"@angular/platform-browser": "ANGULAR_VERSION",
2424
"@angular/platform-browser-dynamic": "ANGULAR_VERSION",
25-
"@firebase/app": "FIREBASE_APP_VERSION",
26-
"@firebase/auth": "FIREBASE_AUTH_VERSION",
25+
"firebase": "FIREBASE_VERSION",
2726
"rxjs": "RXJS_VERSION",
2827
"zone.js": "ZONEJS_VERSION"
2928
},

src/core/angularfire2.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11

2-
import { Reference } from '@firebase/database-types';
32
import { TestBed, inject, withModule, async } from '@angular/core/testing';
43
import { ReflectiveInjector, Provider, PlatformRef, NgModule, Compiler, ApplicationRef, CompilerFactory } from '@angular/core';
54
import { FirebaseApp, AngularFireModule } from 'angularfire2';
65
import { Subscription } from 'rxjs';
76
import { COMMON_CONFIG } from './test-config';
87
import { BrowserModule } from '@angular/platform-browser';
8+
import { database } from 'firebase/app';
99

1010
describe('angularfire', () => {
1111
let subscription:Subscription;
1212
let app: FirebaseApp;
13-
let rootRef: Reference;
14-
let questionsRef: Reference;
15-
let listOfQuestionsRef: Reference;
13+
let rootRef: database.Reference;
14+
let questionsRef: database.Reference;
15+
let listOfQuestionsRef: database.Reference;
1616
let defaultPlatform: PlatformRef;
1717

1818
const APP_NAME = 'super-awesome-test-firebase-app-name';

src/core/angularfire2.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@ import { isPlatformServer } from '@angular/common';
33
import { Observable, Subscription, queueScheduler as queue } from 'rxjs';
44
import { first } from 'rxjs/operators';
55

6-
import { firebase } from '@firebase/app';
7-
import { FirebaseApp, FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';
8-
9-
export const FirebaseOptionsToken = new InjectionToken<FirebaseOptions>('angularfire2.app.options');
10-
export const FirebaseNameOrConfigToken = new InjectionToken<string|FirebaseAppConfig|undefined>('angularfire2.app.nameOrConfig')
11-
126
// Put in database.ts when we drop database-depreciated
137
export const RealtimeDatabaseURL = new InjectionToken<string>('angularfire2.realtimeDatabaseURL');
148

src/core/firebase.app.module.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
import { InjectionToken, NgZone, NgModule, Optional } from '@angular/core';
2+
import { app, auth, apps, database, firestore, functions, initializeApp, messaging, storage } from 'firebase/app';
23

3-
import { FirebaseOptionsToken, FirebaseNameOrConfigToken } from './angularfire2';
4+
// Public types don't expose FirebaseOptions or FirebaseAppConfig
5+
export type FirebaseOptions = {[key:string]: any};
6+
export type FirebaseAppConfig = {[key:string]: any};
47

5-
import firebase from '@firebase/app';
6-
import { FirebaseApp as _FirebaseApp, FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';
7-
import { FirebaseAuth } from '@firebase/auth-types';
8-
import { FirebaseDatabase } from '@firebase/database-types';
9-
import { FirebaseMessaging } from '@firebase/messaging-types';
10-
import { FirebaseStorage } from '@firebase/storage-types';
11-
import { FirebaseFirestore } from '@firebase/firestore-types';
12-
import { FirebaseFunctions } from '@firebase/functions-types';
8+
export const FirebaseOptionsToken = new InjectionToken<FirebaseOptions>('angularfire2.app.options');
9+
export const FirebaseNameOrConfigToken = new InjectionToken<string|FirebaseAppConfig|undefined>('angularfire2.app.nameOrConfig')
1310

14-
export class FirebaseApp implements _FirebaseApp {
11+
export type FirebaseDatabase = database.Database;
12+
export type FirebaseAuth = auth.Auth;
13+
export type FirebaseMessaging = messaging.Messaging;
14+
export type FirebaseStorage = storage.Storage;
15+
export type FirebaseFirestore = firestore.Firestore;
16+
export type FirebaseFunctions = functions.Functions;
17+
18+
export class FirebaseApp implements app.App {
1519
name: string;
16-
automaticDataCollectionEnabled: boolean;
1720
options: {};
1821
auth: () => FirebaseAuth;
22+
// app.App database() doesn't take a databaseURL arg in the public types?
1923
database: (databaseURL?: string) => FirebaseDatabase;
24+
// automaticDataCollectionEnabled is now private? _automaticDataCollectionEnabled?
25+
// automaticDataCollectionEnabled: true,
2026
messaging: () => FirebaseMessaging;
2127
storage: (storageBucket?: string) => FirebaseStorage;
2228
delete: () => Promise<void>;
@@ -28,8 +34,9 @@ export function _firebaseAppFactory(options: FirebaseOptions, nameOrConfig?: str
2834
const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';
2935
const config = typeof nameOrConfig === 'object' && nameOrConfig || {};
3036
config.name = config.name || name;
31-
const existingApp = firebase.apps.filter(app => app.name === config.name)[0];
32-
return (existingApp || firebase.initializeApp(options, config)) as FirebaseApp;
37+
const existingApp = apps.filter(app => app && app.name === config.name)[0];
38+
// We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any
39+
return (existingApp || (initializeApp as any)(options, config)) as FirebaseApp;
3340
}
3441

3542
const FirebaseAppProvider = {

src/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"@angular/core": "ANGULAR_VERSION",
2222
"@angular/platform-browser": "ANGULAR_VERSION",
2323
"@angular/platform-browser-dynamic": "ANGULAR_VERSION",
24-
"@firebase/app": "FIREBASE_APP_VERSION",
24+
"firebase": "FIREBASE_VERSION",
2525
"rxjs": "RXJS_VERSION",
2626
"zone.js": "ZONEJS_VERSION"
2727
},

0 commit comments

Comments
 (0)