Chyba - ReferenceError: Cannot access 'auth' před inicializace

0

Otázka

takže jsem po této on-line návod, jak vybudovat WhatsApp stavět a narazil jsem na tento problém.

 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;

To je moje firebase.js, jsem odstranil můj apiKey, protože jsem sdílení můj kód, ale že si nemyslím, že je problém.

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

Pokud používáte Firebase 9.6.0, zkuste aktualizovat dovoz v9 compat. Toto doporučení pochází z Firebase dokumentace.

Takže, dovoz by měl vypadat takhle:

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

Používám firebase v9 modulární kód jako v firebase Dokumentace
Firebase Verze: 9.6.1
Tento kód pracoval dobře pro mě. Ale nevýhodou čelil jsem byl v9 modulární funkce nebude fungovat s reagovat-firebase-háčky.(Není podporováno až do teď hádám)
Můj usecase: pro next.js projekt s 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

V jiných jazycích

Tato stránka je v jiných jazycích

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