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

React项目Firebase Firestore v8迁移至v9模块化版本及报错解决

问题原因
  • addDoc API 要求传入的第一个参数为集合(Collection)引用,用于指定新文档要存入的集合位置
  • 你代码中使用doc()生成的是文档(Document)引用,和addDoc要求的参数类型不匹配,因此抛出类型错误
修复方案

直接替换uploadFirestore方法内的代码,将doc改为collection即可,同时补充useCallback的依赖数组避免闭包问题和React警告,修改后的完整代码如下:

import React, { useCallback } from 'react'
import { db } from "./firebase"
import { collection, addDoc } from "firebase/firestore"; 

function App(props) {
  const uploadFirestore = useCallback(async() => {
    // collection方法按顺序传入路径段即可生成对应层级的子集合引用
    await addDoc(collection(db, 'users', props.user.uid, 'tareas'), {
      name: 'Test Task',
      fecha: Date.now()
    })
  }, [props.user.uid]) 
  
  return (
    <div>
      <button onClick={uploadFirestore}>
        Upload
      </button>
    </div>
  )
}

export default App

内容的提问来源于stack exchange,提问作者iandev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:45:00