【发布时间】:2016-11-25 13:00:55
【问题描述】:
我曾尝试过 Firebase 3.5 和 3.6,但有同样的错误。我已经阅读了一些 toipc 并且我已经删除了表单中的 type="submit" 并在项目中添加了域,但它总是报告。我已经用 Firefox 50 和 Chrome 54 对其进行了测试——我在 web 中创建了它。我的流程是:我调用 ajax 并接收数据 - 如果数据为真,它将返回 json include token 和 sucess = 1。在 Ajax 调用之后,如果有数据和 data.sucess = 1,我将使用 data.token 进行身份验证
身份验证/网络请求失败
如果网络错误(例如超时、连接中断或 发生了无法访问的主机)。
<form id="form-login" action="" enctype="application/x-www-form-urlencoded">
<!-- Username -->
<input id="username" name="username" type="text" size="20" />
<!-- Password -->
<input id="password" name="password" autocomplete="off" type="password" size="20" />
<input id="btn-login" class="h_submit" value="Login" />
$('#btn-login').click(function(event) {
event.preventDefault();
var username = $.trim(jInputUsername.val());
var password = $.trim(jInputPassword.val());
if (!username || !password) {
alert("Error");
} else {
$.ajax({
url: '',
type: "post",
data: {'username': username, 'password': password},
success: function(data, textStatus, jqXHR) {
//
if ($.isPlainObject(data)) {
// On error
if (data && data.succeed) {
firebase.auth().signInWithCustomToken(data.token).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/invalid-custom-token') {
alert('Token problem.');
}
alert(errorMessage);
});
var fullHref = decodeURI(window.location.href);
setTimeout(window.location.href = fullHref.replace(hash, ''), 1000);
}
}
},
error: function( jqXHR, textStatus) {
console.log('Username or passord wrong");
}
, dataType:'json'
});
}
});
【问题讨论】:
-
您也可以使用“.then”承诺,如下所示:
firebase.auth().signInWithEmailAndPassword(email, password) .then(user => console.log(user)) .catch((error) => console.log(error));
标签: authentication firebase firebase-realtime-database