目前,我的服务中有一个方法,可以从Firebase(Firestore)检索集合并将其作为可观察对象返回。
getInstallers(): Observable<any[]> {
const installersCollection = this.afs.collection<Installer>('installers');
return installersCollection.snapshotChanges().map(installers => {
return installers.map(i => {
const data = i.payload.doc.data() as Installer;
const id = i.payload.doc.id;
return { id, ...data };
});
});
}
我有另一个方法,它利用google places api,并在将place\u id传递给一个地方时返回一个可观察的地方。我不打算全部包括在内,因为它有点长,只知道它返回一个可观察的google place对象。
getPlaceDetails(placeId): Observable<any>
我想做的是这样的。。。
getInstallers(): Observable<any[]> {
const installersCollection = this.afs.collection<Installer>('installers');
return installersCollection.snapshotChanges().map(installers => {
return installers.map(i => {
const data = i.payload.doc.data() as Installer;
const id = i.payload.doc.id;
this.getPlaceDetails(data.placeId).subscribe(place => {
return { id, ...data, ...place }
});
});
});
}
但是,这会导致该方法返回void。我正试图找到一种方法,将从getPlaceDetails中接收到的可观察数据添加到从firebase集合映射的数据中。谢谢