Ich verwende die Echtzeitdatenbank von Firebase, um Werte in Echtzeit in einem Diagramm zu aktualisieren. Ich weiß jedoch nicht, wie ich nur den letzten Wert abrufen soll, der der Datenbank hinzugefügt wurde.
Ich habe eine Erklärung gefunden, in der limitToLast und 'child_added' nicht zusammenarbeiten # 1773 , aber ich habe es nicht geschafft, dass es funktioniert.
Bisher habe ich das geschafft:
this.items = db.list('/items').valueChanges()
this.items.forEach(item => {
this.data = item;
this.add(this.data[this.data.length-1])
console.log(this.data)
})
add(point: any) {
this.chart.addPoint(point)
}
Aber ich weiß, dass es überhaupt nicht effizient ist.
Aus den Dokumenten :
list<T>(pathOrRef: PathReference, queryFn?: QueryFn): AngularFireList<T> {
const ref = getRef(this.database, pathOrRef);
let query: DatabaseQuery = ref;
if(queryFn) {
query = queryFn(ref);
}
return createListReference<T>(query, this);
}
list()
enthält einen zweiten Parameter, mit dem Sie Abfragen durchführen können, sodass Sie Folgendes tun können:
this.items = db.list('/items', ref => ref.limitToLast(2)).valueChanges()
// subscribe to changes
this.items.subscribe(lastItems =>{
console.log(lastItems);
});
valuChanges()
Gibt ein Observable zurück, sodass Sie subscribe()
die Werte empfangen können.
Überprüfen Sie hier für weitere Informationen:
https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen