Estoy tratando de inicializar AngularFire2 en mi aplicación Angular2, pero recibo el siguiente error.

ERROR in ./src/app/firebase/index.ts
Module build failed: Error: /Users/jaruesink/Documents/Projects/buckets/src/app/firebase/index.ts (16,17): Return type of exported function has or is using name 'ModuleWithProviders' from external module "/Users/jaruesink/Documents/Projects/buckets/node_modules/@angular/core/src/metadata/ng_module" but cannot be named.)
    at _checkDiagnostics (/Users/jaruesink/Documents/Projects/buckets/node_modules/@ngtools/webpack/src/loader.js:115:15)
    at /Users/jaruesink/Documents/Projects/buckets/node_modules/@ngtools/webpack/src/loader.js:140:17
 @ ./src/app/app.module.ts 15:0-48
 @ ./src/app/index.ts
 @ ./src/main.ts
 @ multi main

Aquí está mi módulo de Firebase que estoy tratando de importar como initializeFirebase () en mi NgModule.

import { AngularFireModule, AuthProviders, AuthMethods } from 'angularfire2';

export const firebaseConfig = {
  FIREBASE STUFF GOES HERE
};

export const firebaseAuthConfig = {
  provider: AuthProviders.Facebook,
  method: AuthMethods.Redirect
}

export function initializeFirebase() {
  return AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig);
}

¿Alguien puede ayudarme a explicar qué estoy haciendo mal, o si algo más está sucediendo, hay alguna forma de solucionarlo?

¡Gracias!

2
jaruesink 14 dic. 2016 a las 05:52

2 respuestas

La mejor respuesta

La razón por la que no funciona cuando se coloca en el archivo externo tiene que ver con esta función:

export function initializeFirebase() {
  return AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig);
}

La declaración no especifica un tipo de retorno, por lo que se infiere que es ModuleWithProviders - el tipo de retorno de initializeApp (y ​​el tipo que se menciona en el error).

Para resolver el problema, puede especificar el tipo de devolución, lo que también significará que debe agregar una importación:

import { ModuleWithProviders } from '@angular/core';
...
export function initializeFirebase(): ModuleWithProviders {
  return AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig);
}

Para obtener más información, consulte este comentario de problema de GitHub.

0
cartant 14 dic. 2016 a las 07:56

Coloqué todas las cosas de configuración en el mismo archivo que el NgModule y luego funcionó ... Lo había separado así antes y funcionó, pero supongo que esta vez no.

0
jaruesink 14 dic. 2016 a las 02:58