nextjs

时间:2018-04-10 08:25:58

标签: javascript firebase nextjs

我有新的反应和nextjs:

如何在页面上共享firebase引用? 我是否需要在索引页面上使用配置等在每个页面(我想要使用它)上声明引用?

try {    
    firebase.initializeApp({
        apiKey: "############",
        authDomain: "###############",
        databaseURL: "#########",
        projectId: "############",
        storageBucket: "",
        messagingSenderId: "########"
    })

} catch (err) {    
    if (!/already exists/.test(err.message)) {
        console.error('Firebase initialization error', err.stack)
    }
}

1 个答案:

答案 0 :(得分:0)

我通常都使用Firebase的配置实例,该实例作为服务共享。

// services/firebase.js

import firebase from 'firebase';

var config = {
    apiKey: "############",
    authDomain: "###############",
    databaseURL: "#########",
    projectId: "############",
    storageBucket: "",
    messagingSenderId: "########"
};

if (!firebase.apps.length) {
    firebase.initializeApp(config);
}

export default firebase;

然后,您可以导入此服务并在整个应用程序中使用它:

import React from 'react';
import PropTypes from 'prop-types';
import firebase from 'services/firebase';

export default class DynamicPage extends React.Component {
    static propTypes = {
        image: PropTypes.string
    };

    static async getInitialProps() {
        const props = {};
        const dbRef = firebase.database;
        // load some data and pass it to props
        return props;
    }

    render() {
        return (
            <div>
                // render the data
            </div>
        );
    }
}