2016-12-14 87 views
2

我想在我的Angular2应用程序中初始化AngularFire2,但出现以下错误。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

放置在外部文件时,它不工作的原因不得不做此功能:

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

0

我把所有配置的东西放到与NgModule相同的文件中,然后它就起作用了......我之前已经将它分开了,并且它已经工作了,但我猜这次不行。