src/lib/firebase.ts
import { getAnalytics, isSupported } from 'firebase/analytics';
import { initializeApp } from 'firebase/app';
import {
browserSessionPersistence,
getAuth,
setPersistence,
signInAnonymously,
} from 'firebase/auth';
const {
NEXT_PUBLIC_API_KEY,
NEXT_PUBLIC_AUTH_DOMAIN,
NEXT_PUBLIC_PROJECT_ID,
NEXT_PUBLIC_STORAGE_BUCKET,
NEXT_PUBLIC_MESSAGING_SENDER_ID,
NEXT_PUBLIC_APP_ID,
NEXT_PUBLIC_MEASUREMENT_ID,
} = process.env;
const firebaseConfig = {
apiKey: NEXT_PUBLIC_API_KEY,
authDomain: NEXT_PUBLIC_AUTH_DOMAIN,
projectId: NEXT_PUBLIC_PROJECT_ID,
storageBucket: NEXT_PUBLIC_STORAGE_BUCKET,
messagingSenderId: NEXT_PUBLIC_MESSAGING_SENDER_ID,
appId: NEXT_PUBLIC_APP_ID,
measurementId: NEXT_PUBLIC_MEASUREMENT_ID,
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
isSupported()
.then((supported: boolean) => {
if (supported) {
getAnalytics(app);
}
})
.catch((err) => console.error(err));
// Sign in anonymously
const auth = getAuth(app);
setPersistence(auth, browserSessionPersistence)
.then(() => signInAnonymously(auth))
.catch((err) => console.error(err));