Als Student gezeigt bekommen, bin ich zur Zeit stecken mit dem Versuch, die folgenden zu erstellen:Daten nicht in Sicht
Ich habe in meinem sidemenu (bezogen auf die sidemenu Vorlage) ein profilepicture & displayname, die ich tauschen wollen mit Daten aus meiner Firebase-Datenbank.
Ich habe den folgenden Code:
App.html
<img id="profile-image" src="assets/profile/{{ photoURL }}" alt="{{ displayName }}"/> <div id="profile-name" text-center class="width-full">{{ displayName }}</div>
App.component.ts
var displayName; var photoURL; export class MyApp { constructor() { this.setUserData();
}
setUserData()
{
this.uid = firebase.auth(). CurrentUser.uid;console.log("UID: "+ this.uid); let ref = firebase.database().ref('/userProfile').child(this.uid); ref.once('value', function(snapshot) { //CALLBACK var key = snapshot.key; var em = snapshot.child("/email").val(); var nm = snapshot.child("/name").val(); var dpn = snapshot.child("/displayName").val(); var pURL = snapshot.child("/photoURL").val(); //LOG console.log("KEY: "+key); console.log("NAME: "+nm); console.log("DISPLAYNAME: "+dpn); console.log("EMAIL: "+em); console.log("PHOTOURL: "+pURL); displayName = dpn; photoURL = pURL; }, function(error) { // The callback failed. console.error(error); });
In meiner Konsole ich, dass der UID sehen wird immer geladen, die korrekten Daten abgerufen werden immer aber ich kann das Ergebnis auf meiner Ansicht nach nicht scheinen, zu? Es bleibt einfach leer.
Kann jemand erklären, was ich vermisse oder was ich tun soll?
Vielen Dank im Voraus!
Wenn ich die Variablen in der Klasse deklarieren, und die Eigenschaften zu this.displayName ändern. Ich bekomme einen Laufzeitfehler: das ist null. (Da die Daten asynchron geladen werden) – Vdonroberto
können Sie Ihren Code in der Frage – Sajeetharan
richtig ausrichten Ich versuche, es auszurichten, aber aus irgendeinem Grund teilt es meinen Code. – Vdonroberto