2017-10-06 11 views
1

나는 새로운 화 스토어를 angularfire2을 사용하여 ionic으로 테스트하고 있으며, 문서를 따라 컬렉션과 문서를 나열하고 만들 수 있습니다.Firestore에서 문서를 삭제/편집하기 위해 문서 경로를 얻는 방법은 무엇입니까?

문서 모음을 나열하는 데 사용하는 ts and html 파일입니다. 내가 AngularFirestoreDocument에서 삭제() 및 업데이트() 방법을 사용할 수 있지만이 문서의 컬렉션을 갖고 있기 때문에 나는 this.chemicalsCollection.doc('path/1).delete() 또는 this.chemicalsCollection.doc('path/1).update()이 같은 작업을 수행 할 문서 경로를 필요 github의 문서에 따르면

. 예전에

(지난 주) 나는 이런 식으로 뭔가 할 수있는 : html로 *ngFor="let item of chemicalsRef$ | async" (click)="deleteItem(item)"에서

constructor(database: AngularFireDatabase) { 
    this.itemsRef$ = this.database.list('items'); 
} 
deleteItem(item) { 
    this.itemsRef$.remove(item.$key) 
} 

및 루프 itemsRef$을. 인덱스 $key은 firebase 데이터베이스에서 가져온 것이지만 파이어 스토어와 동일한 작업을 수행하면 객체에 $key 또는 path이없고 단지 내가 만든 데이터입니다.

무엇이 누락 되었습니까? 문서의 경로를 얻으려면 어떻게해야합니까?

답변

3

컬렉션에서 데이터를 스트리밍하는 방법은 여러 가지가 있습니다. JSON 객체 데이터를 포함하는 Observable을 반환하는 .ValueChanges()을 사용하고있는 것으로 추측됩니다. 사용하고자하는 것은 .snapshotChanges()입니다. 더 많은 정보가 담긴 배열을 반환합니다. 그런 다음 맵 연산자를 사용하여 배열에서 데이터와 객체 ID를 가져올 수 있습니다. AngularFire GitHub Doc

+0

내가 snapshotChanges [예] 다음 (https://github.com/angular/angularfire2/blob/master/docs/firestore :

이러한 예로는 아래 snapshotChanges 문서에서 표시() 인 /collections.md#snapshotchanges) 작동했습니다. 감사합니다 – danielnv18

+0

듣고 다행 – Rudi