Firestore updateDoc按ID更新文档报错:Expected type 'Ta'
解决Firebase updateDoc报错“Expected type 'Ta', but it was: a custom Aa object”
错误原因
你调用updateDoc时传入的第一个参数是集合引用(TopStoryAnswersCollectionRef),但updateDoc要求第一个参数必须是具体的文档引用(DocumentReference),这是核心错误点。
修复方案
通过Firebase的doc()方法,基于集合引用和目标文档ID生成对应的文档引用,再传入updateDoc。以下是修改后的代码:
// 确保已导入所需方法:import { doc, updateDoc } from "firebase/firestore" const updateFields = (e) => { e.preventDefault() // 生成目标文档的引用,这里以currentUser.uid作为文档ID,可替换为实际需要的文档ID const targetDocRef = doc(TopStoryAnswersCollectionRef, currentUser.uid) updateDoc(targetDocRef, { response_B6: responseB6, response_B9: responseB9, response_B12: responseB12, response_B15: responseB15, response_B18: responseB18, response_B21: responseB21, response_B24: responseB24, response_B27: responseB27, response_B28: responseB28, response_B29: responseB29, response_B32: responseB32, response_B33: responseB33, response_B34: responseB34, response_B35: responseB35, response_B38: responseB38, user_uid: currentUser.uid, }).then(() => { alert('Updated') }) setFormSubmitted(true) }
补充说明
- 如果目标文档ID不是
currentUser.uid,直接替换成你实际要更新的文档ID即可。 - 确认已正确导入
doc和updateDoc方法,避免因缺失导入导致其他错误。
内容的提问来源于stack exchange,提问作者cosmicbreaker
相关产品推荐
相关产品推荐

