如何获取AngularFire2中Firestore刚插入文档的ID?
获取Firestore自动生成的文档ID
嘿,这个问题很常见,其实Firestore的add()方法返回的docRef对象已经包含了你需要的自动生成ID啦!你只需要访问then回调里docRef的id属性就能拿到它,修改后的代码如下:
this.afs.collection<Client>('clients').add(this.form.value).then(docRef => { console.log("Firestore生成的文档ID是: ", docRef.id); })
补充:提前获取文档ID的方式
如果你想在写入文档之前就拿到这个自动生成的ID(比如需要先把ID关联到其他数据中),可以先创建一个空的文档引用(它会自动生成ID),再用set()方法写入数据:
// 先创建带自动ID的文档引用 const newClientRef = this.afs.collection<Client>('clients').doc(); // 获取生成的ID const newClientId = newClientRef.id; console.log("提前拿到的文档ID: ", newClientId); // 写入数据到该文档 newClientRef.set(this.form.value).then(() => { console.log("文档写入成功,ID是: ", newClientId); });
两种方式按需选择就好,第一种适合写入后获取ID,第二种能让你在数据提交前就拿到ID~
内容的提问来源于stack exchange,提问作者Fabio C.
相关产品推荐
相关产品推荐

