estoy en el medio para aprender Auth con Firebase usando NextJS , tratando de entender usando múltiples fuentes (artículo / youtube) pero estoy atascado con este error
ReferenceError: Cannot access 'auth' before initialization
Honestamente, todavía estoy tratando de encontrar the source pero sigo atascado.
Aquí está mi firebase.js
import { firebase, initializeApp } from "firebase/app"; import { getAnalytics } from "firebase/analytics"; const firebaseConfig = { apiKey: process.env.APIKEY, authDomain: process.env.AUTH, projectId: process.env.PID, storageBucket: process.env.BUCKET, messagingSenderId: process.env.MSID, appId: process.env.AID, measurementId: process.env.MID, }; const app = !firebase.apps.length ? initializeApp(firebaseConfig) : firebase.app(); const analytics = getAnalytics(app); const auth = app.auth(); const db = app.firestore(); const googleProvider = new firebase.auth.GoogleAuthProvider(); export { auth, db, signInWithGoogle, ... }; y esta es mi página login.js
import React, { useEffect, useState } from "react"; import { auth, signInWithEmailAndPassword, signInWithGoogle, } from "../../firebase/index"; import Link from "next/link"; import { useAuthState } from "react-firebase-hooks/auth"; function Login() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [user, loading, error] = useAuthState(auth); useEffect(() => { if (loading) { // maybe trigger a loading screen return; } if (user) { alert("GET USER"); console.log(user); } }, [user, loading]); return ( ...Estoy usando
"firebase": "^9.6.1", "firebase-admin": "^10.0.1",¿Estoy haciendo algo mal? ¿O me estoy perdiendo algo? por favor ayuda:(
Debe importar getAuth() desde Firebase Auth SDK y luego inicializarlo como se muestra a continuación:
import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth"; import { getFirestore } from "firebase/firestore"; import { getAnalytics } from "firebase/analytics"; const firebaseConfig = {...}; const app = initializeApp(firebaseConfig) const analytics = getAnalytics(app); const auth = getAuth(app); const db = getFirestore(app); export { auth, db, };No necesita verificar si Firebase ya se ha inicializado cuando usa Modular SDK.