我一直在尝试将Angular应用程序制作为从Firebase Firestore获取数据的Angular Universal应用程序。
我一直在遵循以下指南:
https://fireship.io/lessons/angular-universal-firebase/
初始编译和一切正常,即使借助valueChanges()
方法从Firestore获取数据也能解决问题。
但是,如果我将valueChanges()
更改为get()
并在DocumentSnapshot
上进行了必要的调整,似乎通用方法不会等待数据被获取并呈现。
模板文件
<div class="desc" *ngIf="(task | async) as ts"> {{ts.description}} </div>
工作码
export class Task { colRef: AngularFirestoreCollection; constructor(private db: AngularFirestore) { this.colRef = this.db.collection(this.COL_NAME); } ngOnInit() { this.task = this.colRef.doc(id).valueChanges(); } }
无效代码
export class Task {
colRef: AngularFirestoreCollection;
constructor(private db: AngularFirestore) {
this.colRef = this.db.collection(this.COL_NAME);
}
ngOnInit() {
this.task = this.colRef.doc(id).get().pipe(map(docSnapshot => docSnapshot.data()));
}
}
我一直在尝试将Angular应用程序制作为从Firebase Firestore获取数据的Angular Universal应用程序。我一直在遵循以下指南:https://fireship.io/lessons / ...
valuechanges()
是包angularFire
内的方法,它返回Observable
,而get()
方法位于firestore包内,并返回Promise
。因此,不能将pipe
与get()
结合使用>
Angularfire: