如何从 AngularFire2 中的列表中检索特定值
How to retrieve specific values from a list in AngularFire2
我有一个 Firebase 实时数据库,如下所示:
Items:
Object0:
value1: "Foo-0"
value2: "Bar-0"
Object1:
value1: "Foo-1"
value2: "Bar-1"
...
...等等,删减简化。每个 "ObjectX" 包含完全相同的结构,
like value1, value2... 它们之间唯一的区别就是value1, value2的值。
我需要从每个对象中获取 value1。
我现在可以通过获取每个对象并将值分配给变量来做到这一点:
import { AngularFireDatabase } from '@angular/fire/database';
...
export class FooComponent{
objectOne: ObjectModel = <ObjectModel>{};
objectTwo: ObjectModel = <ObjectModel>{};
constructor(private firebase: AngularFireDatabase) {}
ngOnInit() {
this.firebase
.object('/Items/Object0')
.valueChanges()
.subscribe((objectm: ObjectModel ) => {
this.objectOne = objectm; }
this.firebase
.object('/Items/Object1')
.valueChanges()
.subscribe((objectm: ObjectModel ) => {
this.objectTwo = objectm; }
valueOne = this.objectOne.value1; //"Foo-0"
valueTwo = this.objectTwo.value1; //"Foo-1"
}
}
export interface ObejctModel {
value1: string;
value2: string;
}
我想有一种更简单的方法可以使用 firebase.list('/Items')
而不是 firebase.object
来做到这一点,但我做不到
似乎找到任何适合我的解决方案。谁能帮我重构这段代码
只使用 1 个列表而不是 2 个(或更多)对象?
此外,我必须将值分配给打字稿中的变量,而不是模板方法中通常的 {{ items | async }}
。
您可以执行以下操作:
this.firebase.list('/Items').valueChanges().subscribe(items => {
console.log(items);
items.forEach(values=>{ console.log(values) });
});
items
将包含数据库中的所有对象和值。您还可以使用 forEach
在数组内部迭代,这样您就可以在不知道键 (Object0 and Object1)
.
的情况下访问 value1
和 value2
我有一个 Firebase 实时数据库,如下所示:
Items:
Object0:
value1: "Foo-0"
value2: "Bar-0"
Object1:
value1: "Foo-1"
value2: "Bar-1"
...
...等等,删减简化。每个 "ObjectX" 包含完全相同的结构, like value1, value2... 它们之间唯一的区别就是value1, value2的值。
我需要从每个对象中获取 value1。 我现在可以通过获取每个对象并将值分配给变量来做到这一点:
import { AngularFireDatabase } from '@angular/fire/database';
...
export class FooComponent{
objectOne: ObjectModel = <ObjectModel>{};
objectTwo: ObjectModel = <ObjectModel>{};
constructor(private firebase: AngularFireDatabase) {}
ngOnInit() {
this.firebase
.object('/Items/Object0')
.valueChanges()
.subscribe((objectm: ObjectModel ) => {
this.objectOne = objectm; }
this.firebase
.object('/Items/Object1')
.valueChanges()
.subscribe((objectm: ObjectModel ) => {
this.objectTwo = objectm; }
valueOne = this.objectOne.value1; //"Foo-0"
valueTwo = this.objectTwo.value1; //"Foo-1"
}
}
export interface ObejctModel {
value1: string;
value2: string;
}
我想有一种更简单的方法可以使用 firebase.list('/Items')
而不是 firebase.object
来做到这一点,但我做不到
似乎找到任何适合我的解决方案。谁能帮我重构这段代码
只使用 1 个列表而不是 2 个(或更多)对象?
此外,我必须将值分配给打字稿中的变量,而不是模板方法中通常的 {{ items | async }}
。
您可以执行以下操作:
this.firebase.list('/Items').valueChanges().subscribe(items => {
console.log(items);
items.forEach(values=>{ console.log(values) });
});
items
将包含数据库中的所有对象和值。您还可以使用 forEach
在数组内部迭代,这样您就可以在不知道键 (Object0 and Object1)
.
value1
和 value2