我正在尝试在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);
}
有人可以帮助解释我做错了什么,或者是否有其他事情发生,有没有办法可以解决它?
谢谢!
答案 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