要从Observable数组中获取单个对象,可以使用RxJS的操作符来处理Observable。下面是一个示例代码,展示了如何使用AngularFire获取单个对象:
import { Component } from '@angular/core';
import { AngularFireDatabase } from '@angular/fire/database';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-example',
template: `
{{ item.name }}
{{ item.description }}
`,
})
export class ExampleComponent {
item$: Observable;
constructor(private db: AngularFireDatabase) {
this.item$ = this.db.list('items').snapshotChanges().pipe(
map(actions => {
return actions.map(a => {
const data = a.payload.val();
const key = a.payload.key;
return { key, ...data };
});
}),
map(items => items[0]) // Get the first item from the array
);
}
}
在上面的示例中,我们使用AngularFireDatabase从"items"路径获取一个Observable数组。然后,我们使用RxJS的map操作符将数组转换为单个对象。在模板中,我们使用async管道来订阅Observable并获取单个对象。
请注意,这只是一个示例代码,并且假设"items"路径下有至少一个对象。您可以根据自己的需求进行调整和修改。
上一篇:AngularFire: npm ERR! ERESOLVE 无法解析依赖树
下一篇:AngularFire:signInWithRedirect()和getRedirectResult()不起作用。