我试图在我的 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 模块,我试图将其作为 initializeFirebase() 导入到我的 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);
}
有人可以帮助解释我做错了什么,或者如果发生其他事情,我有办法解决它吗?
谢谢!
最佳答案
放在外部文件中不起作用的原因与此功能有关:
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
关于AngularFire2 初始化应用程序出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41134045/