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

Firebase实时数据库调用报错:TypeError: database is not a function

Firebase实时数据库调用报错解决方法

错误原因

你在React组件中错误地将导出的database实例当作函数调用(database().ref("users")),但实际上database已经是通过getDatabase(app)初始化完成的实时数据库实例,无需再执行函数调用。

修正后的代码

React组件修改部分:

import { database } from '../../firebase'

export const Subscribers = () => {
  const [rows] = React.useState([]);
  const [subscribers, setSubscribers] = React.useState(rows);

  React.useEffect(() => {
    const fetchData = () => {
      const usersRef = database.ref("users"); // 直接使用实例调用ref方法
      console.log(usersRef)
      usersRef.on("value", snapshot => {
        const usersData = snapshot.val();
        setSubscribers(usersData);
      });
    };
    fetchData();
  }, []);

// ... 其余代码
}

额外说明

Firebase v9采用模块化API设计,getDatabase(app)会直接返回实时数据库的实例对象,而不是像v8版本那样返回一个可调用的函数。因此你在配置文件中导出的database已经是可用的实例,直接调用其ref等方法即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:00:28