如何在Firebase Firestore中获取文档ID?已查询数据但未获取ID
获取Firestore文档ID的修改方案
你当前的代码仅提取了文档的原始数据(通过doc.data()),而文档ID存储在每个doc对象的id属性中。只需修改map回调函数,将ID与文档数据合并即可:
修改后的核心代码:
const ref = query( collection(db, "vehicles"), where("type", "==", "motorbike") ); onSnapshot(ref, (categories) => setMotorList(categories.docs.map((doc) => ({ id: doc.id, ...doc.data() // 展开文档的所有字段 }))) );
说明:
- 遍历每个文档时,创建一个新对象,先添加
id字段并赋值为doc.id - 使用ES6展开运算符
...将doc.data()返回的所有数据字段合并到新对象中 - 最终
motorList中的每个元素都会包含id和对应文档的所有数据字段,后续可通过item.id直接访问文档ID
内容的提问来源于stack exchange,提问作者emirryhn
相关产品推荐
相关产品推荐

