2017-10-06 76 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