0

Ich versuche, die Daten, die gerade an Firebase geschoben wurde, so dass ich die $key in einem anderen Push in einem Versuch verwenden kann, um die Daten zu normalisieren. Ich verwende angularfire 2 und ionischen 2Undefiniert dann in zurückgegebene Versprechen nach dem Push in angularfire

ich einen Provider haben, die ein Versprechen zurück:

pushData(fbPath: string, data): any { 
    return new Promise(resolve => { 
     resolve(this.af.database.list(fbPath).push(data)); 
    }); 
    }); 
} 

Und in der Komponente Ich habe einen einfachen Aufruf, die aufgerufen wird, nachdem ein Benutzer ein Formular ausfüllt

this.api.pushData('organisations/', organisation).then(org => { 
    console.log(org); 
}); 

jedoch im console.log ich

enter image description here

Das ist kaum nutzbar. Alles, was ich in der Rückkehr will, ist die $key, die derzeit bei org.path.o[1] ist, die ich denke, ich kann verwenden, aber das scheint ein bisschen wackelig.

Neugierig, warum die then und catch nicht definiert sind. Was ich möchte, ist für die zurückgegebenen Daten wie so ein ordentliches Objekt sein

{ 
    '$key':'-KfB5tltOeuXpQ_pRzR3', 
    'name':'My New Organisation', 
    'registeredDate':345345345345 
} 

Welche ziemlich einfach ist, wenn die Daten von Feuerbasis bekommen, mit einem einfachen

getData(fbPath: string) { 
    return new Promise(resolve => { 
    this.af.database.list(fbPath).subscribe(res => resolve(res)); 
    }); 
} 

In dem Angularfire2 docs heißt es dass die Sicherungsdaten (in .list) eine Rückgabeversprechen auf die Push-Methode zurückgegeben haben. Ich kann es einfach nicht richtig funktionieren lassen.

Antwort

0

In der nativen Firebase (nicht in angularfire2 eingeschlossen) können Sie, wenn Sie ein seltsam aussehendes Objekt wie dieses erhalten, .val() aufrufen, um ein sauber formatiertes Objekt zu erhalten.

Nicht verifiziert, aber sehr wahrscheinlich, dass das den Job erledigen wird.

Verwandte Themen