createUserWithEmailAndPassword não está definido
Como posso acessar o objeto auth inicializado em index.html dentro do meu arquivo auth.js? Devo passá-lo como um argumento ou há uma maneira melhor de gerenciar a autenticação do Firebase em uma configuração modular do JavaScript? Qualquer orientação seria muito apreciada!
<form id="signup-form">
<div class="input-field">
<input type="email" id="signup-email" required />
<label for="signup-email">Email address</label>
</div>
<div class="input-field">
<input type="password" id="signup-password" required />
<label for="signup-password">Password</label>
</div>
<button type="submit">Sign Up</button>
</form>
<script type="module">
import { initializeApp } from "https://www.gstatic.com/firebasejs/10.14.1/firebase-app.js";
import { getAuth } from "https://www.gstatic.com/firebasejs/10.14.1/firebase-auth.js";
const firebaseConfig = {
apiKey: "API_KEY",
authDomain: "AUTH_DOMAIN",
projectId: "PROJECT_ID",
storageBucket: "STORAGE_BUCKET",
messagingSenderId: "MESSAGING_SENDER_ID",
appId: "APP_ID",
measurementId: "MEASUREMENT_ID"
};
const app = initializeApp(firebaseConfig);
const auth = getAuth(app); // Initializes the auth service
</script>
<script src="scripts/auth.js"></script>
const signupForm = document.querySelector('#signup-form');
signupForm.addEventListener('submit', (e) => {
e.preventDefault();
const email = signupForm['signup-email'].value;
const password = signupForm['signup-password'].value;
createUserWithEmailAndPassword(auth, email, password).then((cred) => {
console.log(cred);
}).catch((error) => {
console.error("Error creating user:", error);
});
});
Para poder chamar
createUserWithEmailAndPassword
, você precisa importar essa função específica no arquivo específico onde você quer chamá-la. Então, similar a como você importa-e-então-chama nogetAuth
primeiro arquivo, você precisará importar-e-então-chamacreateUserWithEmailAndPassword
no segundo arquivo também.Marcar
auth.js
como um módulo no HTML (para que você possa usarimport
nele):E então em
auth.js
si mesmoE então: