2017-06-20 63 views
2

我的根Firebase配置代碼位於名爲FirebaseConfig.js的文件中。我希望能夠從整個應用程序中的容器組件訪問配置的數據,以便配置特定於所述子組件的子ref。將Firebase配置傳遞到組件

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 

是否有可能配置火力地堡應用這樣的,如果是這樣 - 這是一個好的模式?

回答

4

是否可以像這樣配置Firebase應用程序,如果是這樣 - 是 它是一個很好的模式?

我不認爲這是一個好的模式。

在我看來,你應該保持firebase實例在外面的反應組件。請使用redux來存儲您的firebase數據。發送action以將縮減器和@connect數據填充到您的反應組件中。

您一定要檢查@r-parkfirebase todo app project有更好的理解。組織良好,有計劃。我用它作爲我的一個小項目的基地。

+0

謝謝,雖然我正在尋找一種避免使用redux的方法,因爲我有一個有限的時間框架來完成這個項目,並認爲它需要很長的時間來學習它。 – SamYoungNY

+0

@SamYoungNY如果你已經知道如何設置反應,那麼REDX是適合你的。閱讀一些教程,甚至觀看YouTube視頻,在那裏觀看優質內容。 Redux非常簡單,它是反應的常見模式。但是現在我非常認真。如果您不太瞭解Firebase,可能會對您造成問題。當我開始爲我的公司構建項目時,我從Firebase切換到GraphCool(GraphQL PaaS)。如果您正在選擇數據庫提供者,我建議您切換到GraphCool! – loelsonk