Ошибка - Ошибка ссылки: Не удается получить доступ к "аутентификации" до инициализации

0

Вопрос

поэтому я следую этому онлайн-учебнику о том, как создать сборку WhatsApp, и столкнулся с этой проблемой.

 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;

Это мое firebase.js, Я удалил свой apiKey, потому что я делюсь своим кодом, но не думаю, что в этом проблема.

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

Если вы используете Firebase 9.6.0, попробуйте обновить импорт до версии v9. Эта рекомендация взята из документации Firebase.

Итак, ваш импорт будет выглядеть следующим образом:

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

Я использую модульный код firebase v9, как в документации firebase
Версия Firebase: 9.6.1
Этот код отлично работал для меня. Но недостатком, с которым я столкнулся, было то, что модульные функции v9 не будут работать с крючками react-firebase.(Не поддерживается до сих пор, я думаю)
Мое использование: для next.js проект с 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

На других языках

Эта страница на других языках

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