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

Next.js结合Firestore开发时报.map is not a function错误如何解决

报错原因与修复方案

报错根源

db.collection("Farmacies").get()异步返回的结果是Firebase专属的QuerySnapshot类型对象,并非原生数组,本身不内置map方法,直接调用就会触发".map is not a function"报错。

修复方法

你需要先访问QuerySnapshot实例的docs属性,拿到所有符合查询条件的文档快照组成的原生数组后,再执行遍历操作:

const [farmacy, setFarmacy] = useState([]);

const fetchData = async () => {
  const db = Fire.firestore();
  const querySnapshot = await db.collection("Farmacies").get();
  // 先取docs属性拿到数组再map
  setFarmacy(querySnapshot.docs.map((doc) => doc.data()));
};

可选优化

如果后续需要用到文档的id字段,可以在遍历的时候一并提取:

setFarmacy(querySnapshot.docs.map((doc) => ({
  id: doc.id,
  ...doc.data()
})));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:00:03