3

我正在使用angularfire2使用 ionic 测试新的 firestore,并且我能够按照文档列出和创建集合和文档。

这些是我用来列出文档集合的ts 和 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,只有我创建的数据。

我错过了什么?如何获取文档的路径?

4

1 回答 1

4

有多种方法可以从集合中流式传输数据。我猜你正在使用.ValueChanges()它返回一个包含 JSON 对象数据的 Observable。您需要使用的是.snapshotChanges()它返回一个包含更多信息的数组。然后,您可以使用映射运算符从数组中获取数据和对象 ID。

一个示例显示在 snapshotChanges() 下的文档中: AngularFire GitHub Doc

于 2017-10-06T15:36:42.427 回答