// import { initializeApp } from 'firebase/app' import firebase from 'firebase/compat/app' import type { User } from '@firebase/auth-types' import { initializeFirestore, persistentLocalCache, persistentMultipleTabManager } from 'firebase/firestore' import type { Firestore } from 'firebase/firestore' import { getAuth, getRedirectResult } from 'firebase/auth' // import { getAnalytics } from "firebase/analytics"; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries // Your web app's Firebase configuration // For Firebase JS SDK v7.20.0 and later, measurementId is optional const firebaseConfig = { apiKey: import.meta.env.VITE_FIREBASE_API_KEY, authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN, databaseURL: import.meta.env.VITE_FIREBASE_DATABASE_URL, 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, measurementId: import.meta.env.VITE_FIREBASE_MEASUREMENT_ID } export const user = ref() export const initialized = computed(() => user.value !== undefined) export const signOut = () => firebase.auth().signOut() export const db = ref() // Initialize Firebase export const initializeFirebase = async () => { const app = firebase.initializeApp(firebaseConfig) const auth = getAuth() try { const authRedirectResult = await getRedirectResult(auth) console.log(authRedirectResult) // user.value = result // This gives you a Google Access Token. You can use it to access Google APIs. // const credential = GoogleAuthProvider.credentialFromResult(result) // const token = credential.accessToken // The signed-in user info. // const user = result.user // IdP data available using getAdditionalUserInfo(result) // ... } catch (error: any) { console.error(error) // const errorCode = error.code // // const errorMessage = error.message // const email = error.customData.email // Handle Errors here. // const errorCode = error.code // const errorMessage = error.message // The email of the user's account used. // const email = error.customData.email // The AuthCredential type that was used. // const credential = GoogleAuthProvider.credentialFromError(error) // ... } firebase.auth().onAuthStateChanged((firebaseUser) => { user.value = firebaseUser }) db.value = markRaw( initializeFirestore(app, { localCache: persistentLocalCache({ tabManager: persistentMultipleTabManager() }) }) ) }