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

Firebase Firestore添加数据异常:docRef.id返回undefined求助

问题解决:Firebase Firestore添加数据失败且docRef.id显示undefined

核心问题

addDoc是异步函数,返回的是Promise对象,你直接赋值给docRef并访问id时,异步操作还没完成,所以docRef.id是undefined,同时数据也没能成功写入Firestore。另外代码里的console.log缺少括号,属于语法冗余。

修正方案

  1. 给addDoc添加await关键字,等待异步操作完成后再获取文档引用
  2. 将包含这段代码的函数声明为async函数(await只能在async函数中使用)
  3. 修正console.log的语法错误

修改后的完整代码

async function addUserData() {
  try {
    console.log("开始写入数据");
    const docRef = await addDoc(collection(db, "users"), {
      name: "Alan"
      // middle: "Mathison",
      // last: "Turing",
      // born: 1912
    });
    console.log('yyyyy');
    console.log("Document written with ID: ", docRef.id);
  } catch (e) {
    console.error("Error adding document: ", e);
  }
}

// 调用函数执行写入
addUserData();

额外说明

  • 如果这段代码是在React组件的事件处理函数中,直接把事件处理函数声明为async即可,比如const handleAdd = async () => { ... }
  • 加上await后,异步操作完成才会执行后续代码,同时如果写入失败,错误会被catch块捕获,方便排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:59:52