Búsqueda de sitios web

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:

  1. Instalé Firebase usando Bower
  2. Se hizo referencia al script en index.html.
  3. Instalar los tipos ambientales de Firebase
  4. Creó un servicio de Firebase
  5. Proporcionado a través de bootstrap()
  6. 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