У меня есть база данных Firebase Realtime, которая выглядит следующим образом:
Items:
Object0:
value1: "Foo-0"
value2: "Bar-0"
Object1:
value1: "Foo-1"
value2: "Bar-1"
...
... и так далее, уменьшите ее, чтобы упростить.Каждый «ObjectX» содержит точно такую же структуру, как 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 }}
в шаблонном подходе.