Files
auditly/services/firebase.ts

42 lines
1.3 KiB
TypeScript

import { initializeApp, getApps } from 'firebase/app';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getFirestore } from 'firebase/firestore';
const firebaseConfig = {
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN,
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET,
messagingSenderId: import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID,
appId: import.meta.env.VITE_FIREBASE_APP_ID,
};
export const isFirebaseConfigured = Boolean(
firebaseConfig.apiKey &&
firebaseConfig.authDomain &&
firebaseConfig.projectId &&
firebaseConfig.apiKey !== 'undefined' &&
firebaseConfig.authDomain !== 'undefined' &&
firebaseConfig.projectId !== 'undefined' &&
// Force demo mode on localhost for testing
!window.location.hostname.includes('localhost')
);
let app;
let auth;
let db;
let googleProvider;
if (isFirebaseConfigured) {
app = getApps().length === 0 ? initializeApp(firebaseConfig) : getApps()[0];
auth = getAuth(app);
db = getFirestore(app);
googleProvider = new GoogleAuthProvider();
} else {
auth = null;
db = null;
googleProvider = null;
}
export { auth, db, googleProvider };