estoy haciendo el curso net ninjas JS y en eso hay un capítulo para bases de datos que usa firebase. pero su código para firebase es bastante diferente al actual y estoy luchando con npm y node.js. Seguí la documentación de esto y obtengo un "Error de sintaxis no detectado: no se puede usar la declaración de importación fuera de un módulo". pero cuando agrego type="module" a app.js aparece un error diferente "Error de tipo no detectado: no se pudo resolver el especificador de módulo "firebase/app". Las referencias relativas deben comenzar con "/", "./" o " ../"." a continuación está mi código: -
html:-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script src="app.js"></script> </body> </html>JS:-
// Import the functions you need from the SDKs you need import { initializeApp } from "firebase/app"; import { getFirestore, collection, getDocs } from 'firebase/firestore'; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries // Your web app's Firebase configuration // For Firebase JS SDK v7.20.0 and later, measurementId is optional const firebaseConfig = { apiKey: "AIzaS.....bFkMOXoRY", authDomain: "modern.....irebaseapp.com", projectId: "mode....nja", storageBucket: "modern-j......ja.appspot.com", messagingSenderId: "9635.....932978", appId: "1:96350793.......cbf567939ae91512b", measurementId: "G-HFN5111EHZ" }; // Initialize Firebase const app = initializeApp(firebaseConfig); const db = getFirestore(app);todo está copiado y pegado desde la aplicación que creé. por favor ayuda
¿Puedes cambiar tus importaciones a esto:
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-app.js"; import { getFirestore, collection, getDocs } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-firestore.js";Puedes encontrar más información al respecto aquí .
Está utilizando módulos de navegador, por lo que necesita usar esas importaciones. Esto es lo que se encuentra en el docu al respecto: