Solía iniciar mi aplicación Firebase usando este método:
import firebase from "firebase/app"; import "firebase/auth"; const config = { apiKey: process.env.NEXT_PUBLIC_FIREBASE_PUBLIC_API_KEY, authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL, projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, }; export default function initFirebase() { if (!firebase.apps.length) { firebase.initializeApp(config); } }Estoy actualizando mi versión de firebase a 9 y necesito una forma de inicializar mi aplicación usando módulos es.
Intenté esto -
import { initializeApp, getApps, getApp } from "firebase/app"; const config = { apiKey: process.env.NEXT_PUBLIC_FIREBASE_PUBLIC_API_KEY, authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL, projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, }; export default function initFirebase() { getApps().length === 0 ? initializeApp(config) : getApp(); }Pero estoy recibiendo este error -
FirebaseError: Firebase: No se ha creado ninguna aplicación Firebase '[DEFAULT]'; llame a Firebase App.initializeApp() (app-compat/no-app).
¿Por qué no simplemente usas initializeApp ?
import { initializeApp } from "firebase/app"; const config = { apiKey: process.env.NEXT_PUBLIC_FIREBASE_PUBLIC_API_KEY, authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL, projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, }; export const app = initializeApp(config); ¿Realmente necesita su función initFirebase() personalizada?