javascript - 将 Firebase 配置传递给组件

标签 javascript reactjs firebase firebase-realtime-database

我的根 firebase 配置代码位于一个名为 FirebaseConfig.js 的文件中。我希望能够从整个应用程序的容器组件访问在那里配置的数据,以便配置特定于所述子组件的子引用。

FirebaseConfig.js

import React, { Component } from 'react';
import * as firebase from 'firebase';

class FirebaseConfig extends Component {
  render() {  
    const config = {...
    };
  firebase.initializeApp(config);
  // INIT DB REFERENCE
  const db = firebase.database();
  const dbRef = db.ref();
  // INIT STORAGE REFERENCE
  const storage = firebase.storage();
  const storageRef = storage.ref();
  console.log("FB INIT'D with STORAGE REF: " + storageRef);

  return FirebaseConfig; 
    }
  }
 export default FirebaseConfig;

文件结构

src
 |__App.js
 |__index.js
 |__FirebaseConfig.js
 |__ /Home
     |__ Home.js
     |__ HomeContainer.js  //Want to access Config var's here

是否可以像这样配置 Firebase 应用程序,如果可以 - 这是一个好的模式吗?

最佳答案

Is it possible to configure the Firebase app like this, and if so - is it a good pattern?

我不认为这是一个好的模式。

在我看来,您应该将 firebase 实例保留在 React 组件之外。使用 redux 来存储您的 firebase 数据。调度一个 action 来填充 reducer 和 @connect 您的数据与您的 React 组件。

你绝对应该检查@r-parkfirebase todo app project有更好的理解。精心组织和计划。我用它作为我的一个小项目的基础。

关于javascript - 将 Firebase 配置传递给组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44658984/

相关文章:

reactjs - Webpack:在多个条目文件中发现重复内容

javascript - Reactjs Link 不适用于 IE11 但适用于 Edge 和其他浏览器

java - 单击 recyclerView 中的下一个按钮后加载下一个项目

javascript - 如何为 react/redux 创建加载器旋转

javascript - 如何使用 Object.defineProperties?

javascript - 如何在reactjs中的clearInterval()之后重新启动计时器?

java - 无法尝试实现从查询中获取随机结果到 Firestore

reactjs - 在 useEffect React 中调用异步函数中的 Firebase v9 onSnapShot

javascript - 我们可以在配置 block 之外使用 valdr.addConstraint 和 addValidator 函数吗?

javascript - if(!!condition) 和 if(condition) 有什么区别