Solo trato de configurar Firebase por primera vez y recibo estos errores, no puedo encontrar ninguna respuesta correcta para que funcione, esta es mi configuración
// Import the functions you need from the SDKs you need import firebase from 'firebase/compat/app'; import 'firebase/firestore'; import { initializeApp } from "firebase/app"; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries // Your web app's Firebase configuration const firebaseConfig = { apiKey: "x", authDomain: "x", projectId: "x", storageBucket: "x", messagingSenderId: "x", appId: "x" }; // Initialize Firebase const app = initializeApp(firebaseConfig); const db = firebase.firestore(); export { db };el error que recibo - TypeError: firebase_compat_app__WEBPACK_IMPORTED_MODULE_0__.default.firestore no es una función
muestra la linea const db = firebase.firestore();
Si desea utilizar la versión compat de firestore, debe inicializar firebaseApp también con la versión compat . Recomendaría usar la nueva versión SDK para ambos:
import { getFirestore } from "firebase/firestore"; import { initializeApp } from "firebase/app"; const firebaseConfig = { apiKey: "x", authDomain: "x", projectId: "x", storageBucket: "x", messagingSenderId: "x", appId: "x", }; const app = initializeApp(firebaseConfig); const db = getFirestore(); export { db }; Con el nuevo SDK, en realidad no necesita un archivo como antes, donde inicializaba su aplicación y creaba las instancias de la base de datos. Después de inicializar su aplicación con el nuevo SDK, puede simplemente llamar a getFirestore() sin necesidad de tener firebaseApp para ello. getFirestore() utilizará automáticamente la aplicación predeterminada.
Un oyente en tiempo real mediante el uso de collection se vería así:
import { collection, onSnapshot } from "firebase/firestore"; const unsubscribe = onSnapshot(collection(db, "cities"), () => { // Respond to data // ... }); // Later ... // Stop listening to changes unsubscribe();Cuando lea los documentos de Firebase, asegúrese de cambiar a la versión SDK 9:
Intenta reemplazar esta línea de tu código:
import 'firebase/firestore';para esto:
import 'firebase/compat/firestore';De esta manera, utilizará la API de compatibilidad en ambas importaciones.