Firebase 9 模块化语法创建新文档引用报无效引用错误如何解决
报错原因
Firebase 9 中doc()方法用于创建文档引用,要求传入的路径层级必须满足「集合→文档→集合→文档」的交替规则,文档对应的路径段数一定是偶数。你当前的写法const userRef = doc(db, 'Users');仅传入了集合Users这1个路径段,属于集合层级,不符合文档引用的参数要求,因此触发报错。
修复方法
你原 Firebase 8 的代码const userRef = db.collection('Users').doc();的作用是创建Users集合下自动生成唯一ID的新文档引用,对应 Firebase 9 的模块化写法有两种等效实现:
- 方法一:先获取集合引用,再生成该集合下的自动ID文档引用
import { collection, doc } from "firebase/firestore"; const usersCollection = collection(db, 'Users'); const userRef = doc(usersCollection);
- 方法二:手动传入自动生成的文档ID作为第三个参数
import { doc } from "firebase/firestore"; const userRef = doc(db, 'Users', crypto.randomUUID());
如果你需要指向Users集合下某个已存在的指定文档,直接把第三个参数替换为对应文档的ID即可。
内容的提问来源于stack exchange,提问作者Jonathan Jeshua Laniba
相关产品推荐
相关产品推荐

