You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何将Firebase Firestore查询结果转为可用对象数组?

解决Firestore获取用户数据时输出内部对象的问题

这个问题我之前也碰到过,核心是你没搞清楚QuerySnapshot的结构——它不是普通的JavaScript对象,直接用Object.values()处理只会拿到Firestore内部的属性(就是你看到的No、Ti这类),而不是我们需要的文档数据。

要拿到包含文档数据的对象数组,你需要这么修改代码:

firebase.firestore().collection('users').get().then((querySnapshot) => {
  // 遍历querySnapshot里的所有文档快照
  const items = querySnapshot.docs.map(doc => {
    // 如果你需要保留文档ID,就用下面的写法;不需要的话直接 return doc.data()
    return {
      id: doc.id, // 可选:把文档ID也加入对象
      ...doc.data() // 展开文档的实际数据
    };
  });
  this.setState({ items });
  console.log(items);
});

关键知识点说明:

  • querySnapshot.docs:这是QuerySnapshot提供的属性,返回一个包含所有匹配文档的QueryDocumentSnapshot数组,每个元素对应集合里的一个文档。
  • doc.data():每个文档快照调用这个方法,会返回该文档的实际数据对象,也就是你想要的shopName、statuz这类字段。
  • 如果不需要文档ID,直接简化成querySnapshot.docs.map(doc => doc.data())就行。

这样修改后,控制台输出的就是你期望的包含文档数据的对象数组啦~

内容的提问来源于stack exchange,提问作者codekh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:37:43