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

React集成Firestore报错:_firebase__WEBPACK_IMPORTED_MODULE_1__.default.collection不是函数

解决Firestore collection is not a function 错误

错误原因

你使用的是Firebase v9+ 模块化SDK,但代码中仍沿用了v8及以下版本的命名空间语法(db.collection()),两者API调用方式不兼容,导致报错。

修复步骤

Firebase v9+采用函数式API,所有操作需导入对应的工具函数执行,具体修改如下:

1. 补充导入必要函数

在App.js中,从firebase/firestore导入collection和addDoc函数:

import { FieldValue, collection, addDoc } from 'firebase/firestore'; // 新增collection、addDoc

2. 修改添加待办事项的代码

将原来的db.collection('TodoApp').add(...)替换为模块化写法:

const Add = (e) => {
  e.preventDefault()
  // 使用addDoc和collection函数替代旧写法
  addDoc(collection(db, 'TodoApp'), {
    TODO: text,
    TIME: dateTime,
    SERVERTIMESTAMP: FieldValue.serverTimestamp()
  })
    .then(() => {
      setText('')
      alert('Todo added successfully')
    })
    .catch((error) => {
      alert('Error adding todo', error)
    })
}

额外说明

Firebase v9+模块化API支持摇树优化,能大幅减小最终打包体积。如果暂时不习惯新语法,也可以使用兼容层(firebase/compat/*),但官方推荐优先使用模块化版本。

内容的提问来源于stack exchange,提问作者Mateo Pérez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:36:14