import * as firebase from 'firebase/app'; import 'firebase/firestore'; import 'firebase/storage';Ya se agregó la importación de firestore aquí, por lo que solucionó la mayoría de los problemas de todos los demás.
const clienteCredentials = { apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY, authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET, messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID, appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID, measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }; export default function initFirebase() { if (!firebase.apps.length){ firebase.initializeApp(clienteCredentials); } }Sigue recibiendo el error aquí:
const projectStorage = firebase.storage(); const projectFirestore = firebase.firestore(); export { projectFirestore, projectStorage };Si usa Firebase V9.0.0+ , puede usar la versión compat para seguir usando el código existente (sintaxis de espacio de nombres V8):
import firebase from "firebase/compat/app" import "firebase/compat/storage" import "firebase/comapt/firestore"Recomendaría actualizar a la nueva sintaxis modular que tiene ciertos beneficios y admite la sacudida de árboles. La sintaxis más nueva se parece a:
import { initializeApp } from "firebase/app" // no compat import { getFirestore } from "firebase/firestore" import { getStorage } from "firebase/storage" const app = initializeApp({...config}) const firestore = getFirestore(app) const storage = getStorage(app)Consulte la documentación que tiene ejemplos de sintaxis tanto antiguas como nuevas.