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

React Native调用firebase.database()报is not a function错误如何解决

错误原因

你使用的是Firebase v9及以上版本,代码混用了模块化新API和compat兼容层的旧版API,仅导入了compat版的核心库,没有导入compat版的Realtime Database模块,导致firebase实例上不存在database方法,触发报错。

解决方法

提供两种可行方案,按需选择即可:

方案一:继续使用compat兼容层写法(原有逻辑改动最小)

直接修改导入部分代码,删除多余的新API导入,补充compat版数据库模块导入:

// 替换原有firebase相关导入代码
import firebase from 'firebase/compat/app'
import 'firebase/compat/database'

原有初始化逻辑、firebase.database()调用逻辑无需修改即可正常运行。

方案二:使用官方推荐的模块化API(性能更优,包体积更小)

完全使用v9+的模块化写法重构相关代码:

  1. 替换导入和初始化逻辑:
// 替换原有firebase相关导入代码
import { initializeApp } from 'firebase/app'
import { getDatabase, ref, once } from 'firebase/database'

// 初始化逻辑修改为
const app = initializeApp(firebaseConfig)
const db = getDatabase(app)
  1. 修改数据库调用代码:
// 替换原有生命周期内的逻辑
// 注:componentWillMount已被官方标记为废弃,建议替换为componentDidMount
componentDidMount() {
  const usersRef = ref(db, 'users')
  once(usersRef, 'value').then((snap) => {
    console.log('Data', snap.val())
  })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:57:04