将多个对Firebase的调用与AngularFire结合

时间:2019-07-10 20:49:56

标签: angular firebase angularfire2 angular2-observables rxjs-observables

我在Angular中有一个课程应用程序。哪里有课程。功能之一是让用户保存自己的课程(选择整个课程)。 所有课程都保存在Firestore中自己的馆藏中。 用户选择的课程在其用户ID下具有所选课程的课程密钥。

我想检索用户选择的课程ID。使用这些课程ID可以从课程集合中检索所选课程,并将这些所选课程显示为有角度的数组。

我以前在Realtime数据库中已经做到这一点,但是我在Firestore中却很难做到。

这是afs为AngularFirestore的服务中的相关功能。

readdocsdifferentpaths(userpath: string, coursepath: string): Observable<any[]> {
    return this.findItemsForKeyList(coursepath, this.readcollection$(userpath))
  }

findItemsForKeyList(path: string, ob: Observable<any[]>): Observable<any> {
    return ob.pipe(
            map(observ => observ.map(key => this.readdoc$(path, key.courseidentification))),
            flatMap(result => observable.combineLatest(result))
            );
  }

readdoc$(path: string, id: string): Observable<any> {
    return this.afs.doc<any>(`${path}/${id}`).valueChanges()
}

readcollection$(path: string): Observable<any[]> {
    return this.afs.collection<any[]>(path).valueChanges()
}

已解决在导入语句中

import { Observable, combineLatest } from 'rxjs';

不是

import { combineLatest } from 'rxjs/operators';

0 个答案:

没有答案