尝试离子构建时出现角度firebase构建错误

Posted

技术标签:

【中文标题】尝试离子构建时出现角度firebase构建错误【英文标题】:angular firebase build error when try ionic build 【发布时间】: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

【问题讨论】:

【参考方案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 需要单独安装。做了同样的事情,我的项目编译成功了。

【讨论】:

以上是关于尝试离子构建时出现角度firebase构建错误的主要内容,如果未能解决你的问题,请参考以下文章

添加 firebase 后构建 Flutter apk 时出现 Gradle 错误

Firebase云消息传递FCM构建错误无法添加任务':processDebugGoogleServices'作为具有该名称的任务已存在

尝试运行并构建到 iPhone 模拟器时出现 Flutter Xcode 致命错误

离子包构建失败 - 离子角度工具包

为啥要构建离子错误? - 错误 65

评估项目“:firebase_auth”时出现问题