Estoy escribiendo una aplicación React con firebase versión 9.6.9 para un sistema de inicio de sesión, pero este error sigue interponiéndose en mi camino. Ya he probado este método:
import { initializeApp } from "firebase/app"; import { getAnalytics } from "firebase/analytics"; import { async } from '@firebase/util'; import { firebase } from "firebase/app"; import { getAuth, onAuthStateChanged, connectAuthEmulator, signInWithEmailAndPassword, createUserWithEmailAndPassword, signOut } from "firebase/auth"; export const firebaseApp = initializeApp({ //Configuration stuff }); if (firebase.apps.length === 0/*or !firebase.apps.length*/) { firebase.initializeApp(firebaseConfig); }`Mi código actual se ve así:
import { initializeApp } from "firebase/app"; import { getAnalytics } from "firebase/analytics"; import { async } from '@firebase/util'; import { firebase } from "firebase/app"; import { getAuth, onAuthStateChanged, connectAuthEmulator, signInWithEmailAndPassword, createUserWithEmailAndPassword, signOut } from "firebase/auth"; export const firebaseApp = initializeApp({ //Configuration stuff }); export const app = initializeApp(firebaseApp); export const analytics = getAnalytics(app); export const auth = getAuth(firebaseApp);¿Alguna sugerencia?
Se parece a esto :
import firebase from "firebase/app"; import "firebase/auth"; import "firebase/firestore"; const firebaseConfig = { apiKey: 'XXXXXXXXXXXXXX', authDomain: 'XXXX.firebaseapp.com', databaseURL: 'https://dburl.firebaseio.com', projectId: 'proj-XXXX', storageBucket: 'XXXXX.appspot.com', messagingSenderId: 'XXXXXXX', appId:XXXXXXXXXXXXXXXXXX" }; firebase.initializeApp(firebaseConfig); export const firebaseAuth = firebase.auth(); export const firestore = firebase.firestore()entonces usa:
import { firebaseAuth } from 'firebase' const CustomComponent = props => { const [email, setEmail] = useState() const [password, setPassword] = useState() const handleAuth = e => { firebaseAuth.signInWithEmailAndPassword(email, password).then(res => { console.log(res.user) }).catch(err => { const { code, message } = err console.log(code, message) }) } return (<button onClick={handleAuth}>firebase</button>)¿Por qué estás inicializando tu aplicación Firebase dos veces?
export const firebaseApp = initializeApp({ //Configuration stuff }); export const app = initializeApp(firebaseApp); <- remove this linedebe asegurarse de que su aplicación Firebase se inicialice solo una vez, cambie su código a esto:
export const firebaseApp = !getApps().length ? initializeApp(firebaseConfig) : getApp(); no olvides importar getApps() y getApp()
import { getApp, getApps, initializeApp } from 'firebase/app'; y, por cierto, no necesita export const firebaseApp ya que no lo va a usar fuera de ese archivo.