2017-02-25 2 views
1

Ich versuche, Daten von Firebase in meinem Ionic2-Projekt mit Angular2 zu bekommen. Folgendes ist der Code.Wie identifiziert man die Methode subscribe in Ionic 2 mit Angularfire2?

getNextItem(): string[] { 

    this.af.database.object(`/user/${uid}/data`) 
    .subscribe(value =>{ 
     this.item = value; 
    }); 
    return this.item; 
    } 

In diesem Fall ist meine item immer leer, da die subscribe Methode führt nach meiner Methode abgeschlossen ist. Ich kann auch nicht die item von innerhalb der subscribe Methode zurückgeben. Also, wie werde ich in der Lage sein, die Daten zu bekommen und zu identifizieren, wenn subscribe Methode ausgeführt wurde?

Antwort

0

Möchten Sie nicht eine neue Promise vielleicht erstellen?

return new Promise(resolve => { 
    this.af.database.object(`/user/${uid}/data`).subscribe(resolve => { 
     this.item = resolve; 
    }); 
}); 

Haben diesen Code nicht versucht so nicht sicher, dass es funktioniert.

Ich schreibe im Allgemeinen so etwas wie diese

getDataByUser(fbPath: string, userId: string) { 
    return new Promise(resolve => { 
     this.af.database.list(`${fbPath}/${userId}/data`) 
      .subscribe(res => resolve(res)); 
    }) 
} 
Verwandte Themen