javascript - 在 react 中使用上下文时如何初始化 firebase?

标签 javascript reactjs firebase

我正在尝试按照本教程进行操作:https://www.robinwieruch.de/complete-firebase-authentication-react-tutorial

我卡在这一步了:

上下文.jsx

import React from 'react';

const FirebaseContext = React.createContext(null);

export default FirebaseContext;

索引.js

import firebase from "./firebase";
import  FirebaseContext  from './components/firebase/Context';

ReactDOM.render(
  <FirebaseContext.Provider value={new firebase()}>
    <App />
  </FirebaseContext.Provider>,
  document.getElementById('root'),
);

当我尝试实现它时,它会生成一条错误消息:

TypeError: _firebase__WEBPACK_IMPORTED_MODULE_5__.default is not a constructor

当我用谷歌搜索该错误消息时,我得到 old posts其中说 firebase 文档近年来发生了变化,但教程比变化更新。

我的 firebase.js 有:

import * as firebase from "firebase";
import firestore from "firebase/firestore";
import 'firebase/auth';

const config = {
  apiKey: "",
  authDomain: ".firebaseapp.com",
  databaseURL: ".firebaseio.com",
  projectId: "",
  storageBucket: ".appspot.com",
  messagingSenderId: "",
  appId: ""
};

firebase.initializeApp(config);
const database = firebase.database();
const fsDB = firebase.firestore();
const settings = { timestampsInSnapshots: true };

export { firebase,  database as default, fsDB, settings };

有谁知道如何解决这个问题。

最佳答案

您需要将其更改为:

import app from 'firebase/app';
import 'firebase/firestore'
import 'firebase/database';

const config = {
  apiKey: "",
  authDomain: ".firebaseapp.com",
  databaseURL: ".firebaseio.com",
  projectId: "",
  storageBucket: ".appspot.com",
  messagingSenderId: "",
  appId: ""
};

class Firebase {
  constructor() {
    app.initializeApp(config);
    this.database = firebase.database();
    this.fsDB = firebase.firestore();
  }
}

export default Firebase

关于javascript - 在 react 中使用上下文时如何初始化 firebase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59041797/

相关文章:

android - Firebase:权限被拒绝 - setValue()

javascript - 悬停元素展开时不显示隐藏元素

javascript - 有没有一种方法可以在不实际接触插件代码的情况下自定义 firefox 插件?

android - 如何从 android 中的 firebase 获取子值的子值?

javascript - JS react 渲染问题

javascript - react : Translator Component | Setting & Accessing State

angular - 保存并恢复日期到 firebase?

javascript - 异步构建一个数组,迭代其他数组

php - 在 PHP 中使用 Javascript 变量

google-chrome-extension - ReactJS chrome 扩展已安装但未显示