I am trying to integrate Firebase into my Angular 2 app but I keep getting this error that Firebase is not a constructor. Following is what I did:
- Installed firebase using bower
- Referenced the script in index.html.
- Install firebase ambient typings
- Created a Firebase service
- Provided it through
bootstrap() - Had it injected in a component
FirebaseService.ts
@Injectable()
export class FirebaseService
{
dataRef: Firebase;
constructor() {
this.dataRef = new Firebase('https://boiling-inferno-1117.firebaseio.com/votes');
}
}
boot.ts
bootstrap(App, [HTTP_PROVIDERS,
ROUTER_PROVIDERS,
IdentityService,
ApiService,
UrlService,
provide(FirebaseService, {useValue: new FirebaseService()})
])
.catch(err => console.error(err));
app.ts
@Component({
selector: 'app',
templateUrl: 'app/app.html',
directives: [AuthRouterOutlet, ROUTER_DIRECTIVES]
})
export class App {
constructor(private firebase:FirebaseService)
{
}
}
Systemjs config:
System.config({
defaultJSExtensions: true,
map: {
'jquery': 'vendors/js/jquery',
'firebase': 'vendors/js/firebase'
},
packages: {
angular2: { defaultExtension: false },
rxjs: { defaultExtension: false }
}
});
and importing Firebase like below:
import * as Firebase from 'firebase';
Any suggestion on what I can do to resolve this situation is greatly appreciated.