2017-11-13 1 views
0

Ich kann leicht die Daten in meinem HTML arbeiten, aber wenn ich es für Visualisierungszwecke konvertieren muss, ist es ein Kampf.Konvertieren Firebase JSON in Typoskript-Array

Ich bekomme die Daten als FirebaseListObservable. In meinem Fall gibt es 3 Werttypen in jeder Liste, aber es ist nur eine davon, die Teil des Arrays sein muss. Wie konvertiere ich ein FirebaseListObservable in ein Array in Typoskript?

Der Grund für die Konvertierung ist die Verwendung von Grafiken in meiner App.

Typoskript die Daten bekommen:

this.measure= this.db.list('/Users/'+this.username+'/Measure'); 
enter code here 

Typoskript für chartjs

this.data = [12, 24, 91, 23] 

Die Daten die Daten von der Feuerbasis

+0

Post mit etwas Code erhöht die Chance auf eine Antwort. – Hareesh

+0

@Hareesh -Ich habe es aktualisiert. Danke fürs Erwähnen. –

Antwort

2

Deklarieren Sie ein leeres Array data=[];

dann mit .subscribe()

this.db.list('/Users/'+this.username+'/Measure').subscribe(measures => { 
    measures.forEach(measure => { 
     this.data.push(measure.number);//.number should be your field in firebase 
    }) 
    }) 

dieser die Daten erhalten alle Liste holen und durch alle Elemente suchen und die gewünschten Werte in das Array schieben.

+0

Genau das habe ich gebraucht! –

0

FirebaseListObservable sein muss, ist eine beobachtbare. Das heißt, Sie erhalten die Liste selbst (= das Array, das Sie wollen), wenn Sie abonnieren.

this.measure: FirebaseListObservable<Measure[]> = this.db.list('/Users/'+this.username+'/Measure'); 
this.measure 
    .map(measurement => measurement.numbers) // this extracts only numbers field so we have basically array of arrays 
    .map(numbersArrays => numbersArrays.reduce((curr, prev) => curr.concat(prev))) // so lets concat all those arrays into a single one 
    .subscribe(numbersArray: number[] => { 
     console.log(numbersArray); 
    }); 

interface Measure { 
    data: Date; 
    geolocation: string; 
    numbers: number[]; 
} 
+0

Ich werde das versuchen, danke. Measure enthält sowohl die Zahlen als auch das Datum und die geografische Position. –

+0

Ich habe die Schnittstelle für 'Measure' hinzugefügt –

+0

Okay, ich habe es jetzt: this.db.list ('/ Users' + this.username + '/ Measure'). Subscribe (items => { Konsole. Protokoll (Elemente); }); Ich kann die Daten in meiner Konsole sehen. Wie speichere ich die Zahlen in einem Array? –