在生产模式下注入多个 firestore 应用中断

Injecting multiple firestore apps breaks in production mode

基本上我需要使用多个 firebase 应用程序来区分不同 firestore 项目中的一些数据。在我部署到生产环境之前,我自己注入一直工作正常。我通过将 angular.json 的配置切换为

找到了解决方法
"optimization": false

显然这会导致其他问题,例如增加捆绑大小。

export const firstAppName = 'first';
export const secondAppName = 'second';

@Injectable({
    providedIn: 'root',
    useFactory: AngularFirestoreFirstFactory,
    deps: [PLATFORM_ID, NgZone]
})
export class AngularFirestoreFirst extends AngularFirestore {}

export function AngularFirestoreFirstFactory(platformId: object, zone: NgZone) {
    return new AngularFirestore(environment.firstAppName, firstAppName, true, null, platformId, zone, null);
}
@Injectable({
    providedIn: 'root',
    useFactory: AngularFirestoreSecondFactory,
    deps: [PLATFORM_ID, NgZone]
})
export class AngularFirestoreSecond extends AngularFirestore {}

export function AngularFirestoreSecondFactory(platformId: object, zone: NgZone) {
    return new AngularFirestore(environment.secondAppName, secondAppName, false, null, platformId, zone, null);
}

这在 ng serve 上的本地主机上运行良好。当我在生产中部署或我 运行 本地服务器 ng serve --prod

时,问题开始出现

类型错误:firestore 不是函数

优化依赖注入的不同之处:改变行为的 true。

那是因为firebase核心库本身不包含firestore库。解决您的问题:

import 'firebase/firestore';