typescript - Firebase no es un constructor
Estoy tratando de integrar Firebase en mi aplicación Angular 2, pero sigo recibiendo este error: Firebase no es un constructor. Esto es lo que hice:
- Instalé Firebase usando Bower
- Se hizo referencia al script en index.html.
- Instalar los tipos ambientales de Firebase
- Creó un servicio de Firebase
- Proporcionado a través de
bootstrap() - Lo había inyectado en un componente
ServicioFirebase.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)
{
}
}
Configuración de Systemjs:
System.config({
defaultJSExtensions: true,
map: {
'jquery': 'vendors/js/jquery',
'firebase': 'vendors/js/firebase'
},
packages: {
angular2: { defaultExtension: false },
rxjs: { defaultExtension: false }
}
});
e importando Firebase como se muestra a continuación:
import * as Firebase from 'firebase';Cualquier sugerencia sobre lo que puedo hacer para resolver esta situación será muy apreciada.
Respuesta #1
Yo configuraría Firebase de esta manera:
System.config({
map: {
firebase: '/node_modules/firebase/lib/firebase-web.js',
(...)
},
(...)
});
e impórtalo así en el archivo TypeScript:
import * as Firebase from 'firebase';
Consulta la documentación de Angularfire2 para más detalles:
- https://github.com/angular/angularfire2
