champ-chatbot / client /firebase /firebaseConfig.js
qyle's picture
Deploy from GitLab e09a19c6
dc67045
Raw History Blame Contribute Delete
1.92 kB
// Import the functions you need from the SDKs you need
import { initializeApp, getApps, getApp } from "firebase/app";
//import { getAnalytics } from "firebase/analytics";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Expo only inlines process.env.EXPO_PUBLIC_* written out in full, so each variable is named here.
const env = {
EXPO_PUBLIC_FIREBASE_API_KEY: process.env.EXPO_PUBLIC_FIREBASE_API_KEY,
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN: process.env.EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN,
EXPO_PUBLIC_FIREBASE_PROJECT_ID: process.env.EXPO_PUBLIC_FIREBASE_PROJECT_ID,
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET: process.env.EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET,
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: process.env.EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
EXPO_PUBLIC_FIREBASE_APP_ID: process.env.EXPO_PUBLIC_FIREBASE_APP_ID,
};
const missing = Object.keys(env).filter((name) => !env[name]);
if (missing.length > 0) {
throw new Error(
`Missing Firebase config: ${missing.join(", ")}. Set them in client/.env (see client/.env.dist).`
);
}
const firebaseConfig = {
apiKey: env.EXPO_PUBLIC_FIREBASE_API_KEY,
authDomain: env.EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN,
projectId: env.EXPO_PUBLIC_FIREBASE_PROJECT_ID,
storageBucket: env.EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET,
messagingSenderId: env.EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
appId: env.EXPO_PUBLIC_FIREBASE_APP_ID,
};
// Initialize Firebase
//const app = initializeApp(firebaseConfig);
//const analytics = getAnalytics(app);
const app =
getApps().length === 0
? initializeApp(firebaseConfig)
: getApp();
// Initialize Firebase Authentication and get a reference to the service
export const auth = getAuth(app);
export const db = getFirestore(app);