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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:20:49