Estoy codificando en un tutorial de clonación de FB. El problema es que lo haré en 2022, por lo que se deben implementar muchas actualizaciones. Soy realmente nuevo en Firebase, así que necesito ayuda con esto.
mi base de fuego.js
import firebase from 'firebase'; import 'firebase/storage'; // Your web app's Firebase configuration const firebaseConfig = { apiKey: "AIzaSyDNCuXEn5todyFVWl6CLJaNridOkTxLi1o", authDomain: "fbclone-b8dca.firebaseapp.com", projectId: "fbclone-b8dca", storageBucket: "fbclone-b8dca.appspot.com", messagingSenderId: "366781998977", appId: "1:366781998977:web:84791acf7d270c5fdbaa80" }; // // Initialize Firebase // const app = initializeApp(firebaseConfig); const app = !fireBase.apps.length ? fireBase.initializeApp(firebaseConfig) : fireBase.app; const db = app.firestore(); const storage = fireBase.storage(); export {db, storage}mi cuadro de entrada.js
import { useSession } from "next-auth/react" import Image from "next/image" import { CameraIcon, EmojiHappyIcon, VideoCameraIcon } from "@heroicons/react/solid"; import {useRef} from 'react' import {db, storage} from '../fireBase'; const InputBox = () => { const {data: session} = useSession(); const inputRef = useRef(null); const sendPost = (e) => { e.preventDefault(); if (!inputRef.current.value) return; db.collection("posts").add({ message: inputRef.current.value, name: session.user.name, email: session.user.email, image: session.user.image, timestamp: firebase.firestore.FieldValue.serverTimestamp(), }) inputRef.current.value = "" }este es el error que me sale:
./fireBase.js:1:0 Module not found: Package path . is not exported from package /home/alondrob/code/labs/projects/fbclone/node_modules/firebase (see exports field in /home/alondrob/code/labs/projects/fbclone/node_modules/firebase/package.json) > 1 | import firebase from 'firebase'; 2 | import 'firebase/storage'; 3 | 4 | // Your web app's Firebase configuration Import trace for requested module: ./components/InputBox.js ./components/Feed.js ./pages/index.js https://nextjs.org/docs/messages/module-not-foundSé que la sintaxis de importación ha cambiado y probé algunas cosas como
// Initialize Cloud Firestore through Firebase import { initializeApp } from "firebase/app" import { getFirestore } from "firebase/firestore" const firebaseApp = initializeApp({ apiKey: '### FIREBASE API KEY ###', authDomain: '### FIREBASE AUTH DOMAIN ###', projectId: '### CLOUD FIRESTORE PROJECT ID ###' }); const db = getFirestore();Simplemente no estoy seguro de cómo configurarlo todo junto.
En lugar de comenzar con un tutorial desactualizado, considere comenzar con la documentación de Firebase o el codelab . Están totalmente actualizados con los últimos cambios.
Si bien los SDK más recientes pueden tener una sintaxis diferente, los SDK más antiguos continúan funcionando correctamente. Por lo tanto, si trabaja con un tutorial/recurso desactualizado, siempre puede usar la versión del SDK en la que se basa el tutorial. También puede usar el SDK más reciente en modo compatible , siguiendo las instrucciones de la guía de actualización.