2017-12-20 6 views
0

Ich aktualisiere auf Angular v5 und auf Firestore und ich habe viele Probleme beim Extrahieren der Felder aus den Firestore-Daten.Wie lade ich die Daten aus einem Firestore in Variablen?

Ich möchte angularfire2 wegen der Probleme nicht verwenden, die ich hatte, als Angular 4 veröffentlicht wurde.

Vor ungefähr 10 Tagen habe ich lange darüber nachgedacht, wie man Daten von einem Schnappschuss erhält. Am Ende habe ich den Code unten, um es zu tun. Leider "doc.data() ['languageName'];" funktioniert nicht mit "get".

querySnapshot.forEach(function (doc) { 
    let name = doc.data()['languageName']; 
    lang.push(name); 
    }); 
}); 

Nachdem ich den ganzen Tag daran gearbeitet habe, habe ich beschlossen, um Hilfe zu bitten. Mein letzter Versuch ist unten.

firebase.auth().signInWithEmailAndPassword(email, password) 
    .then(staff => { 
    if (staff.emailVerified) { 
     this.result = this.db.collection("staff").doc(staff.uid).get() 
     .then(function(staffDb) {     // staff.uid works 
     if (staffDb.exists) {  // <-- Works to here 
      this.sid = staffDb.data.sid;   // nor staff.sid 
      this.staff2memoryService.set(staffDb.data()); 
      this.staff = this.db.collection("staff"). 
           doc(this.sid).get() 
      .then(result => { 
       if (this.sid) { 
       this.staff2memoryService.set(result); 
       } else { 
       console.log('Not exist'); 
       } 

Wenn ich eine console.log tun alle Daten, die ich will, ist da, aber ich kann einfach nicht bekommen. Die Firebase-Dokumentation zeigt, wie man mit console.log auf die Felder zugreift, aber das hilft nicht, da console.log die Felder automatisch zu extrahieren scheint.

Antwort

0

Ich versuchte dies gestern mit "this.data" ohne Erfolg, aber die folgenden funktioniert.

Manchmal ist es am besten, auf ein Problem zu schlafen, viele Stunden gestern ein paar Minuten heute. Ich werde alt!

Verwandte Themen