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
相关产品推荐
相关产品推荐

