Errore - ReferenceError: Impossibile accedere a 'auth' prima dell'inizializzazione

0

Domanda

così sto seguendo questo tutorial online su come costruire un WhatsApp costruire e mi sono imbattuto in questo problema.

 import "../styles/globals.css";
    import { useAuthState } from "react-firebase-hooks/auth";
    import { auth, db } from "../firebase";
    
    function MyApp({ Component, pageProps }) {
      const [user] = useAuthState(auth);
    
      if (!user) return <Login />;
    
      return <Component {...pageProps} />;
    }
    
    export default MyApp;

Questo è il mio firebase.js ho rimosso il mio apiKey perché sto condividendo il mio codice ma non credo che sia il problema principale.

import firebase from "firebase/app";

const firebaseConfig = {
  apiKey: "",
  authDomain: "global-chat-80ab3.firebaseapp.com",
  projectId: "global-chat-80ab3",
  storageBucket: "global-chat-80ab3.appspot.com",
  messagingSenderId: "405392556419",
  appId: "1:405392556419:web:562d012b108561b8be76b6",
};

const app = !firebase.apps.length
  ? firebase.initializeApp(firebaseConfig)
  : firebase.app();

const db = app.firestore();
const auth = app.auth();
const provider = new firebase.auth.GoogleAuthProvider();

export { db, auth, provider };
next.js reactjs
2021-11-24 05:19:26
2
0

Se si utilizza Firebase 9.6.0, prova ad aggiornare il tuo importazioni v9 compat. Questa raccomandazione viene dal Firebase documentazione.

Così, le importazioni sarebbe simile a questa:

import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';

const firebaseConfig = {
  apiKey: "",
  authDomain: "global-chat-80ab3.firebaseapp.com",
  projectId: "global-chat-80ab3",
  storageBucket: "global-chat-80ab3.appspot.com",
  messagingSenderId: "405392556419",
  appId: "1:405392556419:web:562d012b108561b8be76b6",
};

const app = !firebase.apps.length
  ? firebase.initializeApp(firebaseConfig)
  : firebase.app();

const db = app.firestore();
const auth = app.auth();
const provider = new firebase.auth.GoogleAuthProvider();

export { db, auth, provider };

2021-12-08 14:58:56
0

Sto usando firebase v9 codice modulare, come in firebase Documentazione
Firebase Versione: 9.6.1
Questo codice ha funzionato bene per me. Ma il lato negativo che ho dovuto affrontare è stato v9 modulare funzionalità non funziona con react-firebase-ganci.(Non supportato fino ad ora credo)
Il mio caso d'uso: per next.js progetto con firebase.

import { initializeApp, getApps } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getAuth } from "firebase/auth";
import { GoogleAuthProvider } from "firebase/auth";
const firebaseConfig = {
  apiKey: "",
  authDomain: "global-chat-80ab3.firebaseapp.com",
  projectId: "global-chat-80ab3",
  storageBucket: "global-chat-80ab3.appspot.com",
  messagingSenderId: "405392556419",
  appId: "1:405392556419:web:562d012b108561b8be76b6",
};

// Initialize Firebase
const app = getApps().length === 0 ? initializeApp(firebaseConfig) : getApps();
const auth = getAuth();
const db = getFirestore();
const provider = new GoogleAuthProvider();

export { db, auth, provider };
2021-12-24 09:19:28

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................