AngularFire2初始化应用程序错误

时间:2016-12-14 02:52:12

标签: angular typescript firebase angularfire angularfire2

我正在尝试在Angular2应用程序中初始化AngularFire2,但是我收到以下错误。

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

这是我的Firebase模块,我试图在我的NgModule中导入为initializeFirebase()。

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);
}

有人可以帮助解释我做错了什么,或者是否有其他事情发生,有没有办法可以解决它?

谢谢!

2 个答案:

答案 0 :(得分:0)

我将所有的配置文件放在与NgModule相同的文件中,然后它就可以了......我之前已将它分开,并且它有效,但我想这不是。

答案 1 :(得分:0)

放置在外部文件中时不起作用的原因与此功能有关:

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

声明没有指定返回类型,因此它被推断为ModuleWithProviders - initializeApp的返回类型(以及错误中提到的类型)

要解决此问题,您可以指定返回类型,这也意味着您需要添加导入:

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

有关详细信息,请参阅此GitHub issue comment