File size: 1,100 Bytes
aa2e6af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const firebase = require('firebase/app');
const { getStorage } = require('firebase/storage');
const { logger } = require('~/config');

let i = 0;
let firebaseApp = null;

const initializeFirebase = () => {
  // Return existing instance if already initialized
  if (firebaseApp) {
    return firebaseApp;
  }

  const firebaseConfig = {
    apiKey: process.env.FIREBASE_API_KEY,
    authDomain: process.env.FIREBASE_AUTH_DOMAIN,
    projectId: process.env.FIREBASE_PROJECT_ID,
    storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.FIREBASE_APP_ID,
  };

  if (Object.values(firebaseConfig).some((value) => !value)) {
    i === 0 && logger.info('[Optional] CDN not initialized.');
    i++;
    return null;
  }

  firebaseApp = firebase.initializeApp(firebaseConfig);
  logger.info('Firebase CDN initialized');
  return firebaseApp;
};

const getFirebaseStorage = () => {
  const app = initializeFirebase();
  return app ? getStorage(app) : null;
};

module.exports = { initializeFirebase, getFirebaseStorage };