나는 이것에 미쳐 가고있어, 청중에게 복종한다.Angularfire2의 가치를 되찾기
Observable을 반환해야합니다. 먼저 Firestore를 호출하여 배열이 포함 된 필드를 검색 한 다음 배열의 각 값을 기반으로 일치하는 키를 검색하려고합니다. 상당히 쉽습니다.
콘솔에 무엇이 들어 있는지 정확히 알 수 있습니다. 데이터는 여기에 있지만 도대체 왜보기에는 나타나지 않습니다. 내가 포기하기 전에, 나는 아래의 수많은 변형을 만들었다.
내 서비스 - 제안 사항을 반영하도록 수정 됨. 아직 생성자에서 public agendaData: Observable<any>
다음 내 구성 요소
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
}
작동하지
this.agendaData = this.agenda.getUserActivites()
내보기
<div *ngFor="let item of agendaData | async ">
{{ item.name }}
</div>
안녕하세요 @Benoit. 내가 이해하는지 모르겠다. 문제는 항목의 '키'를 표시 할 수 없다는 것입니다. 또는 모든 데이터 (예 :'item.name')? 파이어 스토어에 '열쇠'가 없기 때문에 파이어 스토어에는 열쇠가 없습니다. 매핑하고 배열에 포함하려면 [snapshotChanges() 메서드] (https://github.com/angular/angularfire2/blob/master/docs/firestore/collections.md#snapshotchanges)를 사용해야합니다. – Will
내 문제는 데이터를 전혀 표시 할 수 없다는 것입니다. 이 시나리오에서는 키가 필요하지 않습니다. 난 그냥 선택한 문서의 목록을 검색하고 싶습니다. 선택은'list.payload.data(). activities'에 호스팅 된 키를 기반으로합니다. – Benoit
구독 문제에서 데이터를 반환하려고했으나 작동하지 않습니다. https://stackoverflow.com/question/39295854/angular-2-how-to-return-data-from-subscribe – Alex