装饰器不支持函数调用,但已调用'AngularFireModule'。

13

我在我的Angular 5应用程序中使用Firebase作为数据库。 我能够通过ng build构建,运行和部署项目。 但是,当我使用--prod标志构建时,我会收到以下错误信息。

使用:

ng build --prod

我遇到了以下错误:

'FirebaseModule'的模板编译期间出现错误,修饰器不支持函数调用,但已经调用了'AngularFireModule'。

我不知道如何配置AngularFire模块使其正常工作。

Firebase.Module.ts:

import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { environment } from "../environments/environment";       // Firebase config stored in environment file

import { AngularFireAuthModule } from "angularfire2/auth";
import { AngularFireModule } from "angularfire2/angularfire2";
import { AngularFirestoreModule } from "angularfire2/firestore";

@NgModule({
  imports: [
    AngularFireModule.initializeApp(environment.firebase),  // Error is here
    AngularFireAuthModule,
    AngularFirestoreModule
  ],
  exports: [AngularFireModule, AngularFireAuthModule, AngularFirestoreModule],
  providers: [],
  declarations: []
})
export class FirebaseModule {}

environment.ts (以及 environment.prod.ts)

export const environment = {
     production: false,
     firebase: {
       apiKey: "...",
       authDomain: "...",
       databaseURL: "...",
       projectId: "...",
       storageBucket: "",
       messagingSenderId: "..."
     }
};

软件包版本

"angularfire2": "^5.0.0-rc.4",
"firebase": "^4.8.1",

问Firebase


你解决了这个问题吗?今天我在使用Ionic 3和Angular 5时遇到了同样的问题。 - Huan
4个回答

2
我也遇到了这个错误。angularfire2团队在rc9中已经修复了此问题,现在可以完美地工作。 只需使用以下命令更新库即可: npm install @angularfire2@5.0.0-rc.9 希望这有所帮助。

你能提供更多细节吗? - brijmcq
现在它正在工作,您提到的两个版本都是正确的,我只需要关闭我的 Visual Code 并重新打开它,然后它就开始工作了。非常感谢您。 - ashishSober

0

在安装了@angularfire2@5.0.0-rc.9之后,我成功初始化了AngularFireModule,但需要更改AngularFireModule的初始化方式。我删除了调用静态方法initializeApp的代码,并添加了一个提供者... {provide: FirebaseOptionsToken, useValue: firebaseOptions}。firebaseOptions是传递给initializeApp的对象,而FirebaseOptionsToken可从angularfire2模块中获取。 - Scott Anderson
嘿@scott_Anderson,我认为直接执行并不能解决问题。可能发生的情况是您安装了两个版本的 ng。全局版本用于“直接”构建,而npm将使用本地(node_modules)版本。请验证两个版本,以检查更改版本是否可以解决此问题?谢谢。 - aemonge

-1
当我执行ng build --prod时,遇到了同样的错误,通过将{AngularFireModule}导入行从 import { AngularFireModule } from "angularfire2/angularfire2"; 更改为 import { AngularFireModule } from "angularfire2"; 我解决了这个问题。

谢谢,我会尝试一下,如果对我有用的话,我会将其标记为解决方案!非常感谢您的帮助! - Darren Neimke
这并没有解决问题,它仍然是同样的问题。 - Pini Cheyni

-3

更改构建脚本

ng build --prod

ng build --prod --base-href=./ -aot=false

添加-aot=false来解决问题,但我认为这不是最好的解决方案。应该向angularfire2开发团队报告此错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接