[英]Firebase auth error auth/network-requested-failed
我正在使用Firebase Hosting托管我的網站,我嘗試使用email / pwd登錄,但此錯誤始終提示。
這是我使用的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代碼,則它可以登錄並可以使用。
編輯:如果我以某種方式將form標記更改為div,則可以使用,但沒有任何意義。 是否有關於將HTML5表單與Firebase一起使用不知道的任何問題?
<form>
元素內的<button>
的默認行為是提交表單。 這導致您的頁面重新加載,並且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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.