【问题标题】:angular firebase build error when try ionic build尝试离子构建时出现角度firebase构建错误
【发布时间】:2018-04-20 04:40:13
【问题描述】:

我在尝试构建 ionic 应用程序时出错。 实际上,我在本地构建时没有问题,但是当我在 ionic 网站中检查构建状态时,出现以下错误。

使用 angular5, ionic3

打字稿:node_modules/angularfire2/firebase.app.module.d.ts,行:10 “FirebaseApp”类错误地实现了“FirebaseApp”接口。财产 “FirebaseApp”类型中缺少“automaticDataCollectionEnabled”。

   L9:  export declare const FirebaseAppConfigToken: InjectionToken;
  L10:  export declare class FirebaseApp implements FBApp {
  L11:      name: string;

我不知道。我应该降级 firebase 版本吗?

更新

我像答案一样编辑了firebase.app.module.d.ts,但现在又出现了另一个错误。我像这样编辑了.gitignore

node_modules/*
!node_modules/angularfire2/firebase.app.module.d.ts

npm WARN angularfire2@5.0.0-rc.6.0 需要一个peer @firebase/app@^0.1.6 但没有安装。

npm 错误!无效的 tar 标头。也许焦油已损坏或需要 被枪毙了?

npm 错误!可以在以下位置找到此运行的完整日志:npm ERR!
/home/gitlab-runner/.npm/_logs/2018-04-20T07_49_29_110Z-debug.log

【问题讨论】:

    标签: firebase ionic-framework ionic3


    【解决方案1】:

    我用npm install @firebase/app@0.1.10 解决了。 错误不会发生并构建成功。

    【讨论】:

      【解决方案2】:

      我通过添加这一行解决了这个问题:

      automaticDataCollectionEnabled:布尔值;

      关于文件:

      node_modules/angularfire2/firebase.app.module.d.ts

      最终结果:

      import { InjectionToken } from '@angular/core';
      import { FirebaseAppConfig } from './';
      import { FirebaseApp as FBApp } from '@firebase/app-types';
      import { FirebaseAuth } from '@firebase/auth-types';
      import { FirebaseDatabase } from '@firebase/database-types';
      import { FirebaseMessaging } from '@firebase/messaging-types';
      import { FirebaseStorage } from '@firebase/storage-types';
      import { FirebaseFirestore } from '@firebase/firestore-types';
      export declare const FirebaseAppConfigToken: InjectionToken<FirebaseAppConfig>;
      export declare class FirebaseApp implements FBApp {
          name: string;
          options: {};
          automaticDataCollectionEnabled: boolean; // missing line
          auth: () => FirebaseAuth;
          database: () => FirebaseDatabase;
          messaging: () => FirebaseMessaging;
          storage: () => FirebaseStorage;
          delete: () => Promise<any>;
          firestore: () => FirebaseFirestore;
      }
      export declare function _firebaseAppFactory(config: FirebaseAppConfig, appName?: string): FirebaseApp;
      

      【讨论】:

      • 我已经这样做了,但问题是当我编辑这个 firebase.app.module.d.ts 文件时,因为我使用 ionic pro 并且它会自动执行 npm install。所以即使我编辑了,它也会回到以前。
      【解决方案3】:

      您必须将属性 automaticDataCollectionEnabled 添加到 FirebaseApp 类 (node_modules/angularfire2/firebase.app.module.d.ts)。

      export declare class FirebaseApp implements FBApp {
         name: string;
         options: {};
         automaticDataCollectionEnabled: boolean; // add it like this
         auth: () => FirebaseAuth;
         database: () => FirebaseDatabase;
         messaging: () => FirebaseMessaging;
         storage: () => FirebaseStorage;
         delete: () => Promise<any>;
         firestore: () => FirebaseFirestore;
      }
      

      【讨论】:

      • 我应该编辑文件 firebase.app.module.d.ts 吗?因为这不是我做的。
      • Ofring,我的编辑完全一样,但又出现了一个错误。 npm WARN angularfire2@5.0.0-rc.6.0 需要 @firebase/app@^0.1.6 的对等点,但没有安装。 npm 错误!无效的 tar 标头。也许焦油已损坏或需要压缩? npm 错误!可以在以下位置找到此运行的完整日志:npm ERR! /home/gitlab-runner/.npm/_logs/2018-04-20T07_49_29_110Z-debug.log
      • 我实际上是这样更改并添加到 git 但仍然出现相同的错误。
      • 是否有解决方法,因为我们正在编辑 node_modules,这并不能解决我们的 CI 问题。最新的工作版本是什么?
      【解决方案4】:
       npm i @firebase/app@^0.1.6
      

      这对我有用。正如警告所说,firebase/app 需要单独安装。做了同样的事情,我的项目编译成功了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-05
        • 2023-03-07
        • 2015-12-06
        • 2012-01-22
        • 1970-01-01
        • 2012-12-09
        相关资源
        最近更新 更多