Estoy creando una aplicación web Next.js simple que se conecta a Firestore (Firebase). Todo parece inicializarse correctamente, pero cuando finalmente se inicia la conexión, la configuración parece haber cambiado. He registrado el objeto Firestore ( console.log(firestore) ) y noté una diferencia inesperada entre la terminal y el navegador.
base de fuego.config.js
import { initializeApp } from "firebase/app" import { getFirestore } from "firebase/firestore" const firebaseConfig = { apiKey: process.env.FIREBASE_API_KEY, authDomain: process.env.FIREBASE_AUTH_DOMAIN, projectId: process.env.FIREBASE_PROJECT_ID, storageBucket: process.env.FIREBASE_STORAGE_BUCKET, messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID, appId: process.env.FIREBASE_APP_ID }; const firebase = initializeApp(firebaseConfig); const firestore = getFirestore(firebase); export default firestore;índice.js
import { collection } from "firebase/firestore" import { useCollection } from "react-firebase-hooks/firestore"; import firestore from '../firebase.config' export default function Home() { console.log(firestore); const [accounts, accountsLoading, accountsError] = useCollection(collection(firestore, "accounts"),{} ); return ( <div className={styles.container}> <Head> <title>Create Next App</title> <meta name="description" content="Generated by create next app"/> <link rel="icon" href="/favicon.ico"/> </Head> <main className={styles.main}> {accountsError && <strong>Error: {JSON.stringify(accountsError)}</strong>} {accountsLoading && <span>Loading..</span>} {accounts && accounts.docs.map((account) => ( <div key={account.get('storage_account')}> {JSON.stringify(account)} </div> ))} </main> </div> ) }Salida correcta (en terminal)
Firestore { ... _databaseId: DatabaseId { projectId: 'algofi-liquidation-dashb-44465', database: '(default)' }, ... }Salida incorrecta (navegador)
gc { type: "firestore", ... _databaseId: vt database: "(default)" projectId: undefined isDefaultDatabase: (...) ... }Esto da como resultado un error de conexión de Firestore: "El proyecto no definido no existe o no contiene una base de datos activa de Cloud Datastore o Cloud Firestore".
No sé cuál es la diferencia entre el objeto registrado en la terminal y el del navegador.