gpt4 book ai didi

javascript - Firebase 身份验证错误身份验证/网络请求失败

转载 作者:行者123 更新时间:2023-12-03 01:26:28 24 4
gpt4 key购买 nike

我正在使用 firebase Hosting 托管我的网站,我尝试使用电子邮件/密码登录,但始终提示此错误。

这是我使用的JS:

window.onload = () => initApp(); //Initiate screen

function initApp(){
console.log(firebase);

document.getElementById("btnLogin").addEventListener("click", e => {
var email = document.getElementById("inputEmail").value;
var pwd = document.getElementById("inputPassword").value;

firebase.auth().signInWithEmailAndPassword(email, pwd).catch(error => {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode + "-" + errorMessage);
alert(errorCode + "-" + errorMessage);
}); //Login
});//Login button click

firebase.auth().onAuthStateChanged(user => {
console.log("User: " + user);
if (user) {
// User is signed in.
var displayName = user.displayName;
var uEmail = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
console.log(uEmail + " logged in");
alert(uEmail + " logged in");
} else {
console.log("not logged in");
alert("not logged in");
}//Check user
});//Check auth state changes
}//InitApp

这是表单的 HTML:

<form id="formLogin" class="form-signin">
<h2 align="center" class="form-signin-heading">Inicia sessió</h2>
<label for="inputEmail" class="sr-only">Correu electrònic</label>
<input type="email" id="inputEmail" class="form-control" placeholder="Correu electrònic" required autofocus>
<label for="inputPassword" class="sr-only">Contrassenya</label>
<input type="password" id="inputPassword" class="form-control" placeholder="Contrassenya" required>
<button id="btnLogin"class="btn btn-lg btn-primary btn-block" type="submit">Entrar</button>
</form>

那么,这里有什么问题吗?如果我在 Chrome/Firefox 控制台上使用此 JS 代码,它会登录并运行。

编辑:不知何故,如果我将表单标签更改为 div 它可以工作,但没有意义。在 firebase 中使用 html5 表单是否存在任何不知道的问题?

最佳答案

<button> 的默认行为里面 <form>元素是提交表单。这会导致您的页面重新加载并取消 Firebase 登录代码。

这就是为什么当您更改为 <div> 时它会起作用。元素。

您需要使用preventDefault在您的按钮监听器中以防止此行为:

document.getElementById("btnLogin").addEventListener("click", e => {
e.preventDefault(); // Stop the form from submitting
var email = document.getElementById("inputEmail").value;
var pwd = document.getElementById("inputPassword").value;

firebase.auth().signInWithEmailAndPassword(email, pwd).catch(error => {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode + "-" + errorMessage);
alert(errorCode + "-" + errorMessage);
}); //Login
});//Login button click

关于javascript - Firebase 身份验证错误身份验证/网络请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51517128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com