如何从Firestore查询结果中仅获取单个ID字段?
如何仅获取并输出Firestore查询结果的文档ID?
你现在的代码调用element.data()会输出文档的全部字段数据,要只输出ID有两种可靠的方式,根据你的场景选择即可:
方式一:直接读取文档数据中的id字段
如果你的文档数据里本身就存储了id字段(从你的控制台输出能看到确实存在),可以直接从data()返回的对象中提取:
this.afs.collection("accounts", ref => ref .where("email", "==", email)) // 当前登录用户的邮箱 .get() .subscribe(data => data.forEach(element => console.log(element.data().id) ));
方式二:读取文档快照的id属性(推荐)
Firestore的每个文档快照本身自带id属性,这个属性对应文档在集合中的唯一标识,不管你有没有把ID存到文档数据里都能获取,是更通用的方式:
this.afs.collection("accounts", ref => ref .where("email", "==", email)) // 当前登录用户的邮箱 .get() .subscribe(data => data.forEach(element => console.log(element.id) ));
两者的区别
element.data().id取的是你手动存在文档里的ID字段,可能存在和实际文档ID不一致的风险(比如手动修改过)element.id是Firestore维护的文档唯一标识,和文档在集合中的ID完全一致,更可靠
内容的提问来源于stack exchange,提问作者kodzuken
相关产品推荐
相关产品推荐

