Firestore出现db.collection is not a function错误,官方文档是否过时?
问题解决说明
报错原因
你使用的是Firestore v9及以上的模块化SDK,但代码写的是v8及更早版本的命名空间语法,两种版本的API调用逻辑完全不同,因此触发了Uncaught TypeError: db.collection is not a function错误。
正确代码写法
v9+模块化SDK的正确调用方式如下:
import { getFirestore, doc, setDoc } from "firebase/firestore"; const db = getFirestore(app); // 异步函数内写法 await setDoc(doc(db, "users", "123"), { name: "Mike" }); // 非异步环境下的Promise链式写法 setDoc(doc(db, "users", "123"), { name: "Mike" }) .then(() => console.log("数据写入成功")) .catch(err => console.error("写入失败:", err));
关于文档版本的说明
你参考的Firebase官方文档是最新版本的。注意文档顶部有「Web version 9」和「Web version 8」的切换选项,你大概率是查看了v8版本的代码示例,但项目中引入的是v9+的模块化SDK,才导致语法不匹配。切换到对应版本的文档,就能看到和你当前SDK匹配的代码示例。
内容的提问来源于stack exchange,提问作者Fifi
相关产品推荐
相关产品推荐

