AngularFire2 初始化应用程序出错

标签 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 模块,我试图将其作为 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/

相关文章:

javascript - Angular 4 http 未返回响应

Angular 6 : Cannot find a differ supporting object '[object Object]' of type 'object' . NgFor 只支持绑定(bind)到 Iterables 之类的 Arrays

reactjs - 如何在 Jest 中为函数编写测试用例?

swift - 错误的 dispatch 组通知安置?

ios - addStateDidChangeListener后执行函数

android - 如何通过蓝牙连接从 Android 应用程序在 Raspberry Pi 上运行脚本

angular - 找不到名称 'Office'

css - 如何在 angular-cli.json 中包含媒体(打印|屏幕)

reactjs - 如何使用 React.StrictMode 修复 ThemeProvider

angular - Angular2中带有可选参数的依赖注入(inject)