【问题标题】:How do I initialise firebase when using context in react?在反应中使用上下文时如何初始化firebase?
【发布时间】:2020-03-21 07:59:33
【问题描述】:

我正在尝试学习本教程:https://www.robinwieruch.de/complete-firebase-authentication-react-tutorial

我在这一步卡住了:

Context.jsx

import React from 'react';

const FirebaseContext = React.createContext(null);

export default FirebaseContext;

index.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 不是 构造函数

当我在谷歌上搜索该错误消息时,我收到 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 };

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

【问题讨论】:

标签: javascript reactjs firebase


【解决方案1】:

您需要将其更改为:

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

【讨论】:

  • 您没有在原始代码中的任何地方初始化身份验证,因此无需导入它。
猜你喜欢
  • 2015-09-19
  • 2010-09-23
  • 1970-01-01
  • 2020-08-26
  • 2021-08-26
  • 1970-01-01
  • 2015-11-03
  • 2020-02-03
  • 1970-01-01
相关资源
最近更新 更多