在生产模式下注入多个 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';
基本上我需要使用多个 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';