请帮我解决一个我正在努力的问题.
我有一组Firebase对象键
const keys = ['-Kx9pqoMWlJLbKLQcAkP','-Kx9pqoOYlDHTJ64Was5']
我要做的是使用forkJoin将所有Firebase对象放在一个流中.这就是我所拥有的:
const obj1 = this.fbService.getObj(keys[0]); const obj2 = this.fbService.getObj(keys[1]); forkJoin([obj1,obj2]) .subscribe(res => { console.log(res); // <-- this never happens };
fbService方法是:
getObj(key): Observable<MyObj> { return this.fb.object(`/path/to/obj/${key}`).valueChanges(); }
我假设这个getObj方法与forkJoin不兼容,可能是因为valueChanges,我是否正确使用它?
然而:
> getObj适用于获取单个Firebase对象,例如:
this.fbService.getObj(keys[0]) .subsribe(res => console.log(res))// <-- works
> forkJoin可以很好地处理简单的HTTP请求,比如
const r1 = this.http.get('https://swapi.co/api/people/1'); forkJoin([r1]) .subscribe(res => { console.log(res); // <-- works };
那么,我做错了什么?
我的目标是从键数组中获取对象数组:
['-Kx9pqoMWlJLbKLQcAkP','-Kx9pqoOYlDHTJ64Was5'] => [{prop:'val'},{prop:'val2'}]