1
1
import { Inject , Injectable } from '@angular/core' ;
2
- import { FirebaseUrl } from '../tokens' ;
2
+ import { FirebaseConfig } from '../tokens' ;
3
+ import { FirebaseAppConfig } from '../angularfire2' ;
3
4
import { FirebaseListObservable } from '../utils/firebase_list_observable' ;
4
5
import { FirebaseObjectObservable } from '../utils/firebase_object_observable' ;
5
6
import { FirebaseListFactory , FirebaseListFactoryOpts } from '../utils/firebase_list_factory' ;
@@ -8,25 +9,26 @@ import * as utils from '../utils/utils'
8
9
9
10
@Injectable ( )
10
11
export class FirebaseDatabase {
11
- constructor ( @Inject ( FirebaseUrl ) private fbUrl : string ) { }
12
- list ( urlOrRef :string | Firebase , opts ?:FirebaseListFactoryOpts ) :FirebaseListObservable < any [ ] > {
12
+ constructor ( @Inject ( FirebaseConfig ) private fbConfig : FirebaseAppConfig ) { }
13
+ list ( urlOrRef :string | firebase . database . Reference , opts ?:FirebaseListFactoryOpts ) :FirebaseListObservable < any [ ] > {
13
14
return utils . checkForUrlOrFirebaseRef ( urlOrRef , {
14
- isUrl : ( ) => FirebaseListFactory ( getAbsUrl ( this . fbUrl , < string > urlOrRef ) , opts ) ,
15
- isRef : ( ) => FirebaseListFactory ( < Firebase > urlOrRef )
15
+ isUrl : ( ) => FirebaseListFactory ( getAbsUrl ( this . fbConfig , < string > urlOrRef ) , opts ) ,
16
+ isRef : ( ) => FirebaseListFactory ( < firebase . database . Reference > urlOrRef )
16
17
} ) ;
17
18
}
18
- object ( urlOrRef : string | Firebase , opts ?:FirebaseObjectFactoryOpts ) :FirebaseObjectObservable < any > {
19
+ object ( urlOrRef : string | firebase . database . Reference , opts ?:FirebaseObjectFactoryOpts ) :FirebaseObjectObservable < any > {
19
20
return utils . checkForUrlOrFirebaseRef ( urlOrRef , {
20
- isUrl : ( ) => FirebaseObjectFactory ( getAbsUrl ( this . fbUrl , < string > urlOrRef ) , opts ) ,
21
+ isUrl : ( ) => FirebaseObjectFactory ( getAbsUrl ( this . fbConfig , < string > urlOrRef ) , opts ) ,
21
22
isRef : ( ) => FirebaseObjectFactory ( urlOrRef )
22
23
} ) ;
23
24
}
24
25
}
25
26
26
- function getAbsUrl ( root :string , url :string ) {
27
+ function getAbsUrl ( root :FirebaseAppConfig , url :string ) {
27
28
if ( ! ( / ^ [ a - z ] + : \/ \/ .* / . test ( url ) ) ) {
28
29
// Provided url is relative.
29
- url = root + url ;
30
+ // Strip any leading slash
31
+ url = root . databaseURL + '/' + utils . stripLeadingSlash ( url ) ;
30
32
}
31
33
return url ;
32
- }
34
+ }
0 commit comments