Ich bin verrückt danach, also unterbreite ich mich dem Publikum.Wert von Angularfire2 wird wiederhergestellt
Ich muss ein Observable zurückgeben. Ich zuerst Firestore aufrufen, um ein Feld, das ein Array enthält, und dann basierend auf jedem Wert des Arrays, möchte ich den passenden Schlüssel abrufen. Ziemlich einfach normalerweise.
Ich sehe genau, was ich auf der Konsole kann, so Daten sind hier, aber warum zur Hölle erscheinen sie nie in der Ansicht. Bevor ich aufgab, machte ich unzählige Variationen von unten.
Mein Service - Bearbeitet, um Vorschläge zu reflektieren. Noch arbeitet Meine Komponente nicht
getUserActivites() {
console.log(this.userId)
let array = []
const agenda = this.afs.doc(`users/${this.userId}`).snapshotChanges()
agenda.subscribe(list => {
const data = list.payload.data().activities
data.map(event => {
const id = event
const dataRef = this.afs.doc(`activities/${event}`).valueChanges()
dataRef.subscribe(date => {
array.push(date)
console.log(array) //array log the expected data in an array of Object
return data
})
})
})
return agenda
}
public agendaData: Observable<any>
dann in Konstruktor
this.agendaData = this.agenda.getUserActivites()
My View
<div *ngFor="let item of agendaData | async ">
{{ item.name }}
</div>
Hallo @Benoit. Ich bin mir nicht sicher, ob ich es verstanden habe. Ihr Problem besteht darin, dass Sie den Schlüssel eines Elements nicht anzeigen können. Oder alle Daten (z. B. 'item.name')? Wenn es nur der Schlüssel ist, liegt das daran, dass Firestore keinen hat. Sie müssen die Methode [snapshotChanges()] (https://github.com/angular/angularfire2/blob/master/docs/firestore/collections.md#snapshotchanges) verwenden, um sie zuzuordnen und in Ihr Array aufzunehmen. – Will
Mein Problem ist, dass ich überhaupt keine Daten anzeigen kann. In diesem Szenario brauche ich nicht einmal den Schlüssel. Ich möchte nur eine Liste des ausgewählten Dokuments abrufen. Die Auswahl geschieht basierend auf einem Schlüssel, der in 'list.payload.data() gehostet wird. Aktivitäten' – Benoit
Ihr Problem ist, dass Sie versuchen, Daten von subscribe zurückzugeben, was nicht funktioniert :) https://stackoverflow.com/questions/39295854/angular-2-how-to-return-data-from-subscribe – Alex