【问题标题】:Firebase database not a function error in ReactJS applicationFirebase 数据库不是 ReactJS 应用程序中的函数错误
【发布时间】:2020-06-08 12:20:30
【问题描述】:

大家好,在尝试从 reactjs 应用程序使用 firebase 时,我不断收到 firebase.database() is not a function 错误

这是我如何从一个名为 Firebase.js

的文件初始化我的 firebase
import * as firebase from "firebase";

const firebaseConfig = {
    apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
    authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
    databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
    projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
    storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGE_SENDER_ID,
    appId: process.env.REACT_APP_FIREBASE_APP_ID,
    measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
};

class Firebase {
    constructor() {
        this.firebase = firebase.initializeApp(firebaseConfig);
    }
}

export default Firebase;

这是我的 FirebaseContext.js 文件

import React from "react";

const FirebaseContext = React.createContext(null);

export const FirebaseProvider = FirebaseContext.Provider;
export default FirebaseContext;

现在我的 index.js 文件中有这个

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import App from './pages/App';
import {BrowserRouter} from 'react-router-dom'
import Firebase from "./backend/configs/firebase";
import {FirebaseProvider} from "./contexts/FirebaseContext";

ReactDOM.render(
    <React.StrictMode>
        <FirebaseProvider value={new Firebase()}>
            <BrowserRouter>
                <App/>
            </BrowserRouter>
        </FirebaseProvider>
    </React.StrictMode>,
    document.getElementById('root')
);

现在,如果我像这样在我的一个功能组件中调用 firebase 对象

import FirebaseContext from "../contexts/FirebaseContext";
import React, {useContext, useEffect} from 'react';

export default function Dashboard() {
    const firebase = useContext(FirebaseContext);
    firebase
        .database()   //Firebase is not a function error happens here
        .ref("updates")
        .once('value')
        .then(function (snapshot) {
        });
}

在我上面的仪表板组件中,我不断收到 firebase.database() 不是函数的错误。请帮忙。 谢谢

【问题讨论】:

    标签: reactjs firebase firebase-realtime-database


    【解决方案1】:

    我认为它应该是这样的:

    const { firebase } = useContext(FirebaseContext);
    

    【讨论】:

    • 天啊!我应该被解雇!!!大声笑...非常感谢。终于成功了。
    • 类组件中的用法怎么样,有什么想法吗?
    • 我想你可以试试这样的:static contextType = FirebaseContext; const { firebase } = this.context
    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 2021-09-14
    • 2016-06-05
    • 2018-01-08
    • 2023-03-03
    • 1970-01-01
    • 2023-01-26
    • 2019-11-01
    相关资源
    最近更新 更多