Skip to content

Commit 5bde057

Browse files
davideastjeffbcross
authored andcommitted
fix(database): make database work with new Firebase SDK
1 parent 49d015d commit 5bde057

9 files changed

+352
-246
lines changed

src/database/database.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {Inject, Injectable} from '@angular/core';
2-
import {FirebaseUrl} from '../tokens';
2+
import {FirebaseConfig} from '../tokens';
3+
import {FirebaseAppConfig} from '../angularfire2';
34
import {FirebaseListObservable} from '../utils/firebase_list_observable';
45
import {FirebaseObjectObservable} from '../utils/firebase_object_observable';
56
import {FirebaseListFactory, FirebaseListFactoryOpts} from '../utils/firebase_list_factory';
@@ -8,25 +9,26 @@ import * as utils from '../utils/utils'
89

910
@Injectable()
1011
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[]> {
1314
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)
1617
});
1718
}
18-
object(urlOrRef: string | Firebase, opts?:FirebaseObjectFactoryOpts):FirebaseObjectObservable<any> {
19+
object(urlOrRef: string | firebase.database.Reference, opts?:FirebaseObjectFactoryOpts):FirebaseObjectObservable<any> {
1920
return utils.checkForUrlOrFirebaseRef(urlOrRef, {
20-
isUrl: () => FirebaseObjectFactory(getAbsUrl(this.fbUrl, <string>urlOrRef), opts),
21+
isUrl: () => FirebaseObjectFactory(getAbsUrl(this.fbConfig, <string>urlOrRef), opts),
2122
isRef: () => FirebaseObjectFactory(urlOrRef)
2223
});
2324
}
2425
}
2526

26-
function getAbsUrl (root:string, url:string) {
27+
function getAbsUrl (root:FirebaseAppConfig, url:string) {
2728
if (!(/^[a-z]+:\/\/.*/.test(url))) {
2829
// Provided url is relative.
29-
url = root + url;
30+
// Strip any leading slash
31+
url = root.databaseURL + '/' + utils.stripLeadingSlash(url);
3032
}
3133
return url;
32-
}
34+
}

0 commit comments

Comments
 (0)