Parece muy simple pero no funcionará. Solo quiero acceder a la variable de autenticación entre index.js y auth.js, pero me sigue dando el error de que la autenticación no está definida en auth.js. Pensé que si colocaba el script para index.js sobre auth.js, podría usar sus variables en auth.js. Debe saberse que todo esto funciona correctamente cuando se coloca en el mismo archivo.
índice.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, intial-scale=1.0"/> <title>yuh</title> </head> <body> yo <form id="signup-form"> <input type="email" id="signup-email"/> <input type="password" id="signup-password"/> <button>Submit</button> </form> <script type="module" src="index.js"></script> <script type="module" src="auth.js"></script> </body> </html>índice.js:
import { getAuth, createUserWithEmailAndPassword } from "https://www.gstatic.com/firebasejs/9.8.1/firebase-auth.js"; import { getFirestore} from "https://www.gstatic.com/firebasejs/9.8.1/firebase-firestore.js"; const firebaseConfig = { apiKey: "Afirebase crapYw", authDomain: "firebase crap", databaseURL: "https://firebase crap.firebaseio.com", projectId: "firebase crap", storageBucket: "firebase crap.appspot.com" }; const app = initializeApp(firebaseConfig); const auth = getAuth(app); const db = getFirestore(app);autenticación.js:
signupForm.addEventListener('submit', (e) => { e.preventDefault(); const email = signupForm['signup-email'].value; const password = signupForm['signup-password'].value; console.log(email, password); auth.createUserWithEmailAndPassword(email, password).then((cred) => { const user = cred.user; }).catch((error) => { const errorCode = error.code; const errorMessage = error.errorMessage; }); });Puede usar window.<YourVariableName> = <Value>
Por ejemplo
window.auth = getAuth(app);Debe export su const auth .
índice.js
... export const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); ...autenticación.js
import { auth } from 'path/to/index.js'; auth //now accessible!