Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AngularFire version 6 #2282

Merged
merged 38 commits into from
Jan 30, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
4723972
First.
jamesdaniels Jun 20, 2019
7718780
Simplified build script
jamesdaniels Jun 21, 2019
287cee1
Wrapper data-dep index.d.ts was bad
jamesdaniels Jun 21, 2019
d274b36
Build.ts arg types
jamesdaniels Jun 21, 2019
c2a8972
Zap the old releasing file
jamesdaniels Jun 21, 2019
e31d8df
Getting testing working locally
jamesdaniels Jun 21, 2019
f075296
Linting
jamesdaniels Jun 21, 2019
a7a054a
Travis runner
jamesdaniels Jun 21, 2019
4ffb550
ChromeHeadless
jamesdaniels Jun 21, 2019
7d50f50
Clean up, call NG build rather than do so ourselves. Preserve output …
jamesdaniels Jun 21, 2019
a351b11
More cleanup, node tests
jamesdaniels Jun 22, 2019
7449d04
Test all
jamesdaniels Jun 22, 2019
c995642
Adding the Firestore specific project config back in
jamesdaniels Jun 26, 2019
06f171b
Anys on the specs, to tsc doesn't fail
jamesdaniels Jun 26, 2019
5ab4f64
Ditch hardcoded paths in build and fix up ng-add package.json stuff
jamesdaniels Jun 27, 2019
ce7412c
Putting together tests using the emulator
jamesdaniels Jul 14, 2019
8320416
First.
jamesdaniels Jan 8, 2020
b992309
Merged packagr
jamesdaniels Jan 8, 2020
aa8550a
Updating the tests
jamesdaniels Jan 9, 2020
349756e
Getting emulators wired up
jamesdaniels Jan 9, 2020
40bb84d
Drop the side-effect imports
jamesdaniels Jan 14, 2020
843c78e
Updating things
jamesdaniels Jan 14, 2020
cbc15e7
Bumping more things
jamesdaniels Jan 15, 2020
4c79567
Fixing AuthGuard
jamesdaniels Jan 15, 2020
ceb9a5c
Tests
jamesdaniels Jan 15, 2020
0acd89c
Docs and more
jamesdaniels Jan 16, 2020
3b79df8
Updating ng9 test
jamesdaniels Jan 16, 2020
91b4e94
Merged master and working on specs (#2298)
jamesdaniels Jan 28, 2020
c3b2f62
Auth, fix callback => observable shorthand
jamesdaniels Jan 28, 2020
054b7f1
Dropping the wrapper from the build script
jamesdaniels Jan 29, 2020
ce9487c
Merge branch 'master' into version_6_initial
jamesdaniels Jan 29, 2020
9a671d5
Drop wrong registerVersion again (merge stuffs)
jamesdaniels Jan 29, 2020
4a74efe
Updating the schematic builder
jamesdaniels Jan 29, 2020
eafa16e
Updating the schematic for the list depreciation
jamesdaniels Jan 29, 2020
b89a98c
Getting tests green and `providedIn: "any"`
jamesdaniels Jan 30, 2020
58cc382
Dropping firebase-node, database-depreciated, and the wrapper
jamesdaniels Jan 30, 2020
ad00106
drop test:universal for now and fix auth-guard
jamesdaniels Jan 30, 2020
74369e3
Make the auth guard pure
jamesdaniels Jan 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Docs and more
  • Loading branch information
jamesdaniels committed Jan 16, 2020
commit 0acd89c2bd40a96cba74c0e675eb09a1179686a2
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ test/ng-build/**/yarn.lock
tools/build.js
coverage
*.log
api-*.json
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
"tsconfig-paths": "^3.8.0",
"tsickle": "^0.35.0",
"tslint": "^5.17.0",
"typedoc": "^0.16.4",
"typescript": "~3.6.4"
},
"typings": "index.d.ts"
Expand Down
4 changes: 2 additions & 2 deletions src/analytics/analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Injectable, Inject, Optional, NgZone, InjectionToken, PLATFORM_ID } fro
import { of, empty, throwError } from 'rxjs';
import { isPlatformBrowser } from '@angular/common';
import { map, tap, shareReplay, switchMap, catchError } from 'rxjs/operators';
import { FirebaseAppConfig, FirebaseOptions, ɵrunOutsideAngular, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, PromiseProxy } from '@angular/fire';
import { FirebaseAppConfig, FirebaseOptions, ɵrunOutsideAngular, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, ɵPromiseProxy } from '@angular/fire';
import { analytics } from 'firebase';

export interface Config {[key:string]: any};
Expand All @@ -21,7 +21,7 @@ const GTAG_CONFIG_COMMAND = 'config';
const GTAG_FUNCTION_NAME = 'gtag';
const DATA_LAYER_NAME = 'dataLayer';

export interface AngularFireAnalytics extends PromiseProxy<analytics.Analytics> {};
export interface AngularFireAnalytics extends ɵPromiseProxy<analytics.Analytics> {};

@Injectable({
providedIn: 'root'
Expand Down
4 changes: 2 additions & 2 deletions src/auth/auth.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Injectable, Inject, Optional, NgZone, PLATFORM_ID } from '@angular/core';
import { Observable, of, from } from 'rxjs';
import { switchMap, shareReplay, map } from 'rxjs/operators';
import { FIREBASE_OPTIONS, FIREBASE_APP_NAME, FirebaseOptions, FirebaseAppConfig, FirebaseAuth, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler, ɵrunOutsideAngular, PromiseProxy, ɵlazySDKProxy } from '@angular/fire';
import { FIREBASE_OPTIONS, FIREBASE_APP_NAME, FirebaseOptions, FirebaseAppConfig, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler, ɵrunOutsideAngular, ɵPromiseProxy, ɵlazySDKProxy } from '@angular/fire';
import { User, auth } from 'firebase/app';

export interface AngularFireAuth extends PromiseProxy<auth.Auth> {};
export interface AngularFireAuth extends ɵPromiseProxy<auth.Auth> {};

@Injectable({
providedIn: 'root'
Expand Down
4 changes: 2 additions & 2 deletions src/core/angularfire2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { isPlatformServer } from '@angular/common';
import { Observable, Subscription, queueScheduler as queue } from 'rxjs';

// SEMVER put in database.ts when we drop database-depreciated
export const DATABASE_URL = new InjectionToken<string>('angularfire2.realtimeDatabaseURL');
export const ɵDATABASE_URL = new InjectionToken<string>('angularfire2.realtimeDatabaseURL');

export class ɵFirebaseZoneScheduler {
constructor(public zone: NgZone, private platformId: Object) {}
Expand Down Expand Up @@ -72,7 +72,7 @@ type PromiseReturningFunctionPropertyNames<T> = { [K in FunctionPropertyNames<T>
type NonPromiseReturningFunctionPropertyNames<T> = { [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? never : K }[FunctionPropertyNames<T>];
type NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];

export type PromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &
export type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &
{ [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>> } &
{ [K in PromiseReturningFunctionPropertyNames<T> ]: (...args: Parameters<T[K]>) => ReturnType<T[K]> };

Expand Down
28 changes: 9 additions & 19 deletions src/core/firebase.app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,21 @@ export interface FirebaseAppConfig {[key:string]: any};
export const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');
export const FIREBASE_APP_NAME = new InjectionToken<string|FirebaseAppConfig|undefined>('angularfire2.app.nameOrConfig');

export type FirebaseDatabase = database.Database;
export type FirebaseAuth = auth.Auth;
export type FirebaseAnalytics = analytics.Analytics;
export type FirebaseMessaging = messaging.Messaging;
export type FirebasePerformance = performance.Performance;
export type FirebaseStorage = storage.Storage;
export type FirebaseFirestore = firestore.Firestore;
export type FirebaseFunctions = functions.Functions;
export type FirebaseRemoteConfig = remoteConfig.RemoteConfig;

// Have to implement as we need to return a class from the provider, we should consider exporting
// this in the firebase/app types as this is our highest risk of breaks
export class FirebaseApp implements Partial<app.App> {
name: string;
options: {};
analytics: () => FirebaseAnalytics;
auth: () => FirebaseAuth;
database: (databaseURL?: string) => FirebaseDatabase;
messaging: () => FirebaseMessaging;
performance: () => FirebasePerformance;
storage: (storageBucket?: string) => FirebaseStorage;
analytics: () => analytics.Analytics;
auth: () => auth.Auth;
database: (databaseURL?: string) => database.Database;
messaging: () => messaging.Messaging;
performance: () => performance.Performance;
storage: (storageBucket?: string) => storage.Storage;
delete: () => Promise<void>;
firestore: () => FirebaseFirestore;
functions: (region?: string) => FirebaseFunctions;
remoteConfig: () => FirebaseRemoteConfig;
firestore: () => firestore.Firestore;
functions: (region?: string) => functions.Functions;
remoteConfig: () => remoteConfig.RemoteConfig;
}

export function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string|FirebaseAppConfig|null) {
Expand Down
13 changes: 7 additions & 6 deletions src/database-deprecated/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ import { FirebaseListFactoryOpts, FirebaseObjectFactoryOpts, PathReference } fro
import { FirebaseObjectFactory } from './firebase_object_factory';
import { FirebaseObjectObservable } from './firebase_object_observable';
import * as utils from './utils';
import { FirebaseDatabase, FirebaseOptions, FirebaseAppConfig, FIREBASE_OPTIONS, FIREBASE_APP_NAME, DATABASE_URL, ɵfirebaseAppFactory } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵDATABASE_URL as URL, ɵfirebaseAppFactory } from '@angular/fire';
import { database } from 'firebase/app';

export { URL };

@Injectable({
providedIn: 'root'
Expand All @@ -15,12 +18,12 @@ export class AngularFireDatabase {
/**
* Firebase Database instance
*/
database: FirebaseDatabase;
database: database.Database;

constructor(
@Inject(FIREBASE_OPTIONS) options:FirebaseOptions,
@Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig:string|FirebaseAppConfig|null|undefined,
@Optional() @Inject(DATABASE_URL) databaseURL:string|null,
@Optional() @Inject(URL) databaseURL:string|null,
zone: NgZone
) {
this.database = zone.runOutsideAngular(() => {
Expand All @@ -40,6 +43,4 @@ export class AngularFireDatabase {
return FirebaseObjectFactory(ref, opts);
}

}

export { DATABASE_URL, DATABASE_URL as URL };
}
4 changes: 2 additions & 2 deletions src/database-deprecated/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Subscription, Scheduler, queueScheduler as queue } from 'rxjs';
import { DataSnapshot, AFUnwrappedDataSnapshot, PathReference, DatabaseReference } from './interfaces';
import { FirebaseDatabase } from '@angular/fire';
import { database } from 'firebase/app';

const REGEX_ABSOLUTE_URL = /^[a-z]+:\/\/.*/;

Expand Down Expand Up @@ -101,7 +101,7 @@ export function isAbsoluteUrl(url: string) {
* @param app - Firebase App
* @param path - Database path, relative or absolute
*/
export function getRef(database: FirebaseDatabase, pathRef: PathReference): DatabaseReference {
export function getRef(database: database.Database, pathRef: PathReference): DatabaseReference {
// if a db ref was passed in, just return it
if(isFirebaseRef(pathRef)) {
return pathRef as DatabaseReference;
Expand Down
13 changes: 7 additions & 6 deletions src/database/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,22 @@ import { DatabaseQuery, PathReference, QueryFn, AngularFireList, AngularFireObje
import { getRef } from './utils';
import { createListReference } from './list/create-reference';
import { createObjectReference } from './object/create-reference';
import { FirebaseDatabase, FirebaseOptions, FirebaseAppConfig, DATABASE_URL, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, ɵDATABASE_URL as URL, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler } from '@angular/fire';
import { database } from 'firebase/app';

export { URL };

@Injectable({
providedIn: 'root'
})
export class AngularFireDatabase {
public readonly database: FirebaseDatabase;
public readonly database: database.Database;
public readonly scheduler: ɵFirebaseZoneScheduler;

constructor(
@Inject(FIREBASE_OPTIONS) options:FirebaseOptions,
@Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig:string|FirebaseAppConfig|null|undefined,
@Optional() @Inject(DATABASE_URL) databaseURL:string|null,
@Optional() @Inject(URL) databaseURL:string|null,
@Inject(PLATFORM_ID) platformId: Object,
zone: NgZone
) {
Expand Down Expand Up @@ -58,6 +61,4 @@ export {
AngularFireAction,
Action,
SnapshotAction
} from './interfaces';

export { DATABASE_URL as URL };
} from './interfaces';
4 changes: 2 additions & 2 deletions src/database/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Subscription, Scheduler } from 'rxjs';
import { PathReference, DatabaseReference, FirebaseOperation, FirebaseOperationCases } from './interfaces';
import { FirebaseDatabase } from '@angular/fire';
import { database } from 'firebase/app';

export function isString(value: any): boolean {
return typeof value === 'string';
Expand All @@ -24,7 +24,7 @@ export function isFirebaseRef(value: any): boolean {
* @param app - Firebase App
* @param path - Database path, relative or absolute
*/
export function getRef(database: FirebaseDatabase, pathRef: PathReference): DatabaseReference {
export function getRef(database: database.Database, pathRef: PathReference): DatabaseReference {
// if a db ref was passed in, just return it
return isFirebaseRef(pathRef) ? pathRef as DatabaseReference
: database.ref(pathRef as string);
Expand Down
5 changes: 3 additions & 2 deletions src/firestore/firestore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ import { Settings, PersistenceSettings, CollectionReference, DocumentReference,
import { AngularFirestoreDocument } from './document/document';
import { AngularFirestoreCollection } from './collection/collection';
import { AngularFirestoreCollectionGroup } from './collection-group/collection-group';
import { FirebaseFirestore, FirebaseOptions, FirebaseAppConfig, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵfirebaseAppFactory, ɵFirebaseZoneScheduler } from '@angular/fire';
import { isPlatformServer } from '@angular/common';
import { firestore } from 'firebase/app';

/**
* The value of this token determines whether or not the firestore will have persistance enabled
Expand Down Expand Up @@ -91,7 +92,7 @@ export function associateQuery(collectionRef: CollectionReference, queryFn = ref
providedIn: 'root'
})
export class AngularFirestore {
public readonly firestore: FirebaseFirestore;
public readonly firestore: firestore.Firestore;
public readonly persistenceEnabled$: Observable<boolean>;
public readonly scheduler: ɵFirebaseZoneScheduler;

Expand Down
4 changes: 2 additions & 2 deletions src/functions/functions.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { Injectable, Inject, Optional, NgZone, InjectionToken } from '@angular/core';
import { of, from, Observable } from 'rxjs';
import { map, switchMap, shareReplay, tap } from 'rxjs/operators';
import { FirebaseOptions, FirebaseAppConfig, FIREBASE_APP_NAME, ɵrunOutsideAngular, ɵlazySDKProxy, PromiseProxy } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, FIREBASE_APP_NAME, ɵrunOutsideAngular, ɵlazySDKProxy, ɵPromiseProxy } from '@angular/fire';
import { FIREBASE_OPTIONS, ɵfirebaseAppFactory } from '@angular/fire';
import { functions } from 'firebase/app';

export const ORIGIN = new InjectionToken<string>('angularfire2.functions.origin');
export const REGION = new InjectionToken<string>('angularfire2.functions.region');

// override httpsCallable for compatibility with 5.x
export interface AngularFireFunctions extends Omit<PromiseProxy<functions.Functions>, 'httpsCallable'> { };
export interface AngularFireFunctions extends Omit<ɵPromiseProxy<functions.Functions>, 'httpsCallable'> { };

@Injectable({
providedIn: 'root'
Expand Down
4 changes: 2 additions & 2 deletions src/messaging/messaging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import { Injectable, Inject, Optional, NgZone, PLATFORM_ID } from '@angular/core
import { messaging } from 'firebase/app';
import { Observable, empty, from, of, throwError } from 'rxjs';
import { mergeMap, catchError, map, switchMap, concat, shareReplay, defaultIfEmpty } from 'rxjs/operators';
import { FirebaseOptions, FirebaseAppConfig, ɵrunOutsideAngular, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵlazySDKProxy, PromiseProxy } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, ɵrunOutsideAngular, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵlazySDKProxy, ɵPromiseProxy } from '@angular/fire';
import { ɵfirebaseAppFactory } from '@angular/fire';
import { isPlatformServer } from '@angular/common';

export interface AngularFireMessaging extends Omit<PromiseProxy<messaging.Messaging>, 'deleteToken'|'getToken'|'requestPermission'> {};
export interface AngularFireMessaging extends Omit<ɵPromiseProxy<messaging.Messaging>, 'deleteToken'|'getToken'|'requestPermission'> {};

@Injectable({
providedIn: 'root'
Expand Down
4 changes: 2 additions & 2 deletions src/performance/performance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import { Injectable, NgZone, ApplicationRef, InjectionToken, Inject, Optional }
import { Observable, Subscription, of } from 'rxjs';
import { first, tap, map, shareReplay, switchMap } from 'rxjs/operators';
import { performance } from 'firebase/app';
import { FirebaseApp, PromiseProxy, ɵlazySDKProxy } from '@angular/fire';
import { FirebaseApp, ɵPromiseProxy, ɵlazySDKProxy } from '@angular/fire';

// SEMVER @ v6, drop and move core ng metrics to a service
export const AUTOMATICALLY_TRACE_CORE_NG_METRICS = new InjectionToken<boolean>('angularfire2.performance.auto_trace');
export const INSTRUMENTATION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.instrumentationEnabled');
export const DATA_COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.dataCollectionEnabled');

export interface AngularFirePerformance extends Omit<PromiseProxy<performance.Performance>, 'trace'> {};
export interface AngularFirePerformance extends Omit<ɵPromiseProxy<performance.Performance>, 'trace'> {};

export type TraceOptions = {
metrics?: {[key:string]: number},
Expand Down
4 changes: 2 additions & 2 deletions src/remote-config/remote-config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Injectable, Inject, Optional, NgZone, InjectionToken } from '@angular/core';
import { Observable, concat, of, pipe, OperatorFunction, MonoTypeOperatorFunction, empty, throwError } from 'rxjs';
import { map, switchMap, tap, shareReplay, distinctUntilChanged, filter, groupBy, mergeMap, scan, withLatestFrom, startWith, debounceTime, catchError } from 'rxjs/operators';
import { FirebaseAppConfig, FirebaseOptions, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, PromiseProxy } from '@angular/fire';
import { FirebaseAppConfig, FirebaseOptions, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵPromiseProxy } from '@angular/fire';
import { remoteConfig } from 'firebase/app';
import { ɵfirebaseAppFactory, ɵrunOutsideAngular } from '@angular/fire';

Expand All @@ -10,7 +10,7 @@ export interface ConfigTemplate {[key:string]: string|number|boolean};
export const SETTINGS = new InjectionToken<remoteConfig.Settings>('angularfire2.remoteConfig.settings');
export const DEFAULTS = new InjectionToken<ConfigTemplate>('angularfire2.remoteConfig.defaultConfig');

export interface AngularFireRemoteConfig extends PromiseProxy<remoteConfig.RemoteConfig> {};
export interface AngularFireRemoteConfig extends ɵPromiseProxy<remoteConfig.RemoteConfig> {};

// TODO export as implements Partial<...> so minor doesn't break us
export class Value implements remoteConfig.Value {
Expand Down
5 changes: 3 additions & 2 deletions src/storage/storage.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Injectable, Inject, Optional, InjectionToken, NgZone, PLATFORM_ID } from '@angular/core';
import { createStorageRef } from './ref';
import { FirebaseStorage, FirebaseOptions, FirebaseAppConfig, ɵFirebaseZoneScheduler, ɵfirebaseAppFactory, FIREBASE_OPTIONS, FIREBASE_APP_NAME } from '@angular/fire';
import { FirebaseOptions, FirebaseAppConfig, ɵFirebaseZoneScheduler, ɵfirebaseAppFactory, FIREBASE_OPTIONS, FIREBASE_APP_NAME } from '@angular/fire';
import { UploadMetadata } from './interfaces';
import { storage } from 'firebase/app';

export const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');

Expand All @@ -16,7 +17,7 @@ export const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');
providedIn: 'root'
})
export class AngularFireStorage {
public readonly storage: FirebaseStorage;
public readonly storage: storage.Storage;
public readonly scheduler: ɵFirebaseZoneScheduler;

constructor(
Expand Down
1 change: 1 addition & 0 deletions test/ng-build/ng9/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"@angular/platform-browser": "~9.0.0-rc.8",
"@angular/platform-browser-dynamic": "~9.0.0-rc.8",
"@angular/router": "~9.0.0-rc.8",
"firebase": "^7.6.2",
"rxjs": "~6.5.3",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
Expand Down
Loading