Firebase Firestore添加数据异常:docRef.id返回undefined求助
问题解决:Firebase Firestore添加数据失败且docRef.id显示undefined
核心问题
addDoc是异步函数,返回的是Promise对象,你直接赋值给docRef并访问id时,异步操作还没完成,所以docRef.id是undefined,同时数据也没能成功写入Firestore。另外代码里的console.log缺少括号,属于语法冗余。
修正方案
- 给
addDoc添加await关键字,等待异步操作完成后再获取文档引用 - 将包含这段代码的函数声明为
async函数(await只能在async函数中使用) - 修正
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
相关产品推荐
相关产品推荐

