尝试离子构建时出现角度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'作为具有该名称的任务已存在