/
angularfire2.ts
48 lines (42 loc) · 1.31 KB
/
angularfire2.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import {Inject, Injectable, OpaqueToken, provide, Provider} from 'angular2/core';
import {FirebaseAuth} from './providers/auth';
import * as Firebase from 'firebase';
import {FirebaseObservable} from './utils/firebase_observable';
import {FirebaseListFactory} from './utils/firebase_list_factory';
import {FirebaseUrl, FirebaseRef} from './tokens';
@Injectable()
export class AngularFire {
constructor(
@Inject(FirebaseUrl) private fbUrl:string,
public auth:FirebaseAuth) {
}
list (url:string):FirebaseObservable<any[]> {
// TODO: check if relative or absolute
return FirebaseListFactory(this.fbUrl+url);
}
}
export const FIREBASE_PROVIDERS:any[] = [
provide(FirebaseRef, {
useFactory: (url:string) => new Firebase(url),
deps: [FirebaseUrl]}),
FirebaseAuth,
AngularFire
];
export const defaultFirebase = (url: string): Provider => {
return provide(FirebaseUrl, {
useValue: url
});
};
export {FirebaseList, FirebaseListConfig} from './providers/firebase_list';
export {FirebaseObservable} from './utils/firebase_observable';
export {
FirebaseAuth,
FirebaseAuthState,
FirebaseAuthDataGithub,
AuthProviders
} from './providers/auth';
export {FirebaseUrl, FirebaseRef} from './tokens';
// Helps Angular-CLI automatically add providers
export default {
providers: FIREBASE_PROVIDERS
}