angular - 有没有人做过一些事情来从 Angular 8 连接到多个 firebase 项目?
问题描述
我正在尝试从 Angular 8 连接到多个 Firebase 项目,我已经使用 @angular/fire 完成了它,但仅适用于 JIT 编译。
我不确定问题是否是因为我没有像文档中那样在主模块中初始化 firebase 应用程序,因为这只适用于连接到一个独特的项目。
所以,我为连接到多个项目所做的是使用依赖注入
做类似下面的代码的事情。
//app.module.ts setup firebase settings base on environments
import { AngularFirestore } from '@angular/fire/firestore';
import { AngularFireDatabase } from '@angular/fire/database';
export function AngularFirebaseInstance1(platformId: Object, zone: NgZone) {
return new AngularFirestore(environment.firestoreInstance1, 'firebase-instance1', false, null, platformId, zone, null);
}
export function AngularFirebaseInstance2(platformId: Object, zone: NgZone) {
return new AngularFireDatabase(environment.firestoreInstance2, 'firebase-instance2', null, platformId, zone);
}
providers: [
{
provide: 'firebaseInstance1',
deps: [PLATFORM_ID, NgZone],
useFactory: AngularFirebaseInstance1
},
{
provide: 'firebaseInstance2',
deps: [PLATFORM_ID, NgZone],
useFactory: AngularFirebaseInstance2
},
]
//firestore.service.ts service firestore instance1
import { AngularFirestore } from '@angular/fire/firestore';
export class FireStoreService1 {
constructor(@Inject('firebaseInstance1') private afs: AngularFirestore) { }
getLanguages(profile_id): Observable<any> {
const ref = `users/${profile_id}/skills/languages`;
return this.afs.doc(ref).valueChanges();
}
}
// firebase.service.ts service firebase instance2
import { AngularFireDatabase } from '@angular/fire/database';
export class FireStoreService2 {
constructor(@Inject('firebaseInstance2') private db: AngularFireDatabase) { }
getLastNotifications(clientId: string, emailEncode: string): Observable<any> {
const databaseRef = `${clientId}-${emailEncode}/notifications/`;
return this.db.list(databaseRef, ref => ref.orderByChild('read').equalTo(false).limitToLast(3)).snapshotChanges();
}
}
当我为生产(AOT 编译)构建时,我得到的是这个错误
解决方案
解决了只是导入
import 'firebase/auth';
import 'firebase/firestore';
import 'firebase/database';
在 app.module.ts
推荐阅读
- symfony-forms - Symfony 3.4 表单忽略 DateTimeType:class 上的 view_timezone
- macros - Describe for LISP-Macros
- opencv - 基于红外图像的光伏组件边缘检测
- java - 如何在onLongPress中显示自定义浮动选项菜单并按住recyclerView的项目?
- google-cloud-platform - 将过去日志从 Gcloud Logging 导出到 Bigquery 的选项
- google-cloud-spanner - 如何实现 UNNSET(SELECT NAME FROM NAMES); 在扳手
- python - Python没有运行无限循环的函数
- vba - 如何正确简单地确定 OneDrive 物理路径?
- node.js - 按子值对对象数组进行排序的最佳方法是什么?
- image - 控制 Pandoc word 文档输出大小/测试图像大小