Angular Firebase Firestore 获取文档 ID [英] Angular Firebase Firestore get document ID

查看:42
本文介绍了Angular Firebase Firestore 获取文档 ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 Firebase Firestore 数据库是这样的:

My Firebase Firestore database is like this:

Collection:orders
    DocumentID: (autogenerated)
         Document: orderName: string

变量声明如下:

    orderCollection: AngularFirestoreCollection<Order>
    orders: Observable<Order[]>

我收到所有这样的订单":

I am getting all 'orders' like this:

orderCollection = this.afs.collection('orders');
orders = this.orderCollection.valueChanges();

然后我会像这样打印订单:

I am then printing the orders like this:

<tr *ngFor="let o of orders | async">
    <td>{{o.orderName}}</td>
    <td><a (click)="editOrder(o.$key)">Edit</a></td>
</tr>

我一切正常,直到编辑部分.

I everything is working perfect up to the edit part.

对于如何发回订单的文档 ID?我想发回订单文档 ID,以便我可以对其进行编辑.使用实时数据库,您可以使用 $key 执行某些操作,但不能使用 Firestore.建议?

For edit: how to I send back the document ID of the order? I want to send the order document ID back so I can then edit it. With the realtime database you could do something with $key, but not with the firestore. Suggestions?

推荐答案

在 AngularFirestore 中,它只是 document.id.但要使其正常工作,您必须使用 snapshotChanges 而不是 valueChanges.所以:

In AngularFirestore it is simply document.id. But for this to work you must use snapshotChanges instead of valueChanges. So:

orders = this.orderCollection.snapshotChanges();

然后:

<tr *ngFor="let o of orders | async">
    <td>{{o.data().orderName}}</td>
    <td><a (click)="editOrder(o.id)">Edit</a></td>
</tr>

灵感来自:Firestore 从集合中获取文档 ID获取包含文档 ID 的集合.

这篇关于Angular Firebase Firestore 获取文档 ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆