Skip to content

Commit ad34e1b

Browse files
committed
feat(AngularFire): add FirebaseAuth as auth property of service
1 parent 118e99a commit ad34e1b

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

src/angularfire.spec.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,14 @@ import {
77
inject
88
} from 'angular2/testing';
99
import {Injector, provide, Provider} from 'angular2/core';
10-
import {AngularFire, FIREBASE_PROVIDERS, FirebaseUrl, FirebaseRef, defaultFirebase} from './angularfire';
10+
import {
11+
AngularFire,
12+
FIREBASE_PROVIDERS,
13+
FirebaseAuth,
14+
FirebaseUrl,
15+
FirebaseRef,
16+
defaultFirebase
17+
} from './angularfire';
1118

1219
const testUrl = 'http://test.firebaseio.com:5000/';
1320

@@ -30,6 +37,15 @@ describe('angularfire', () => {
3037
});
3138

3239

40+
describe('.auth', () => {
41+
beforeEachProviders(() => [FIREBASE_PROVIDERS, defaultFirebase(testUrl)]);
42+
43+
it('should be an instance of AuthService', inject([AngularFire], (af:AngularFire) => {
44+
expect(af.auth).toBeAnInstanceOf(FirebaseAuth);
45+
}));
46+
});
47+
48+
3349
describe('FIREBASE_REF', () => {
3450
it('should provide a FirebaseRef for the FIREBASE_REF binding', () => {
3551
var injector = Injector.resolveAndCreate([

src/angularfire.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import {FirebaseUrl, FirebaseRef} from './tokens';
77

88
@Injectable()
99
export class AngularFire {
10-
constructor(@Inject(FirebaseUrl) private fbUrl:string) {
10+
constructor(
11+
@Inject(FirebaseUrl) private fbUrl:string,
12+
public auth:FirebaseAuth) {
1113
}
1214
list (url:string):FirebaseObservable<any[]> {
1315
// TODO: check if relative or absolute

src/providers/auth.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
import {Provider, Inject} from 'angular2/core';
1+
import {Provider, Inject, Injectable} from 'angular2/core';
22
import {ReplaySubject} from 'rxjs/subject/ReplaySubject';
33
import {FirebaseRef} from '../tokens';
44

55
import * as Firebase from 'firebase';
66

7-
const kBufferSize = 1;
7+
const kBufferSize = 1;
88

99
export enum AuthProviders {
1010
Github
1111
};
1212

13+
@Injectable()
1314
export class FirebaseAuth extends ReplaySubject<FirebaseAuthState> {
1415
constructor (@Inject(FirebaseRef) private _fbRef: Firebase) {
1516
super (kBufferSize);
@@ -50,7 +51,7 @@ export interface FirebaseAuthDataGithub {
5051
scope?: [string];
5152
}
5253

53-
// Firebase only provides typings for
54+
// Firebase only provides typings for
5455
interface FirebaseAuthDataAllProviders extends FirebaseAuthData {
5556
github?: FirebaseAuthDataGithub;
5657
}

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"compilerOptions": {
33
"experimentalDecorators": true,
4+
"emitDecoratorMetadata": true,
45
"module": "commonjs",
56
"target": "es5",
67
"noImplicitAny": true,

0 commit comments

Comments
 (0)