trezy/firebase-system-update

View on GitHub
src/helpers/firebase.js

Summary

Maintainability
A
0 mins
Test Coverage
// Module imports
import {
    getApps,
    initializeApp,
} from 'firebase/app'
import { getDatabase } from 'firebase/database'
import {
    getFirestore,
    setLogLevel,
} from 'firebase/firestore'





// Local Constants
const firebaseConfig = {
    apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
    appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
    authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
    databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL,
    measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID,
    messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
    projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
    storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
}





// Local variables
let firebase = getApps()[0]

let database = null
let firestore = null





if (!firebase) {
    firebase = initializeApp(firebaseConfig)
}

if (!database) {
    database = getDatabase()
}

if (!firestore) {
    firestore = getFirestore()
    setLogLevel('debug')
}





export default firebase
export {
    database,
    firebase,
    firestore,
}