2017-10-06 57 views
1

我正在使用angularfire2測試帶有離子的新Firestore,並且我能夠按照文檔列出並創建集合和文檔。如何獲取文檔路徑以刪除/編輯Firestore中的文檔?

這些是我用來列出文檔集合的ts and html文件。

根據github我可以使用delete()和update()方法AngularFirestoreDocument但因爲我的文檔的集合,我需要的文件路徑,這樣做this.chemicalsCollection.doc('path/1).delete()this.chemicalsCollection.doc('path/1).update()的文檔。

在過去(上週)我可以做這樣的事情:

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

和循環itemsRef$在html *ngFor="let item of chemicalsRef$ | async" (click)="deleteItem(item)"$key索引來自firebase數據庫,但如果我對firestore執行相同操作,則對象中不會有$keypath,只是我創建的數據。

我錯過了什麼?我如何獲取文檔的路徑?

回答

3

從集合中流式傳輸數據有多種方式。我猜你正在使用.ValueChanges(),它返回一個包含JSON對象數據的Observable。 你需要使用的是.snapshotChanges()它返回一個包含更多信息的數組。然後,您可以使用映射運算符從數組中獲取數據和對象ID。

這樣的一個例子是顯示在文檔中下snapshotChanges(): AngularFire GitHub Doc

+0

我跟着snapshotChanges [示例](https://github.com/angular/angularfire2/blob/master/docs/firestore /collections.md#snapshotchanges),它工作。謝謝 – danielnv18

+0

很高興聽到它的工作 – Rudi