我有这个用户登录的代码:
function logUserIn(){
var email = document.getElementById('username').value;
var password = document.getElementById('password').value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorMessage)
console.log('didnt log in')
});
};
这是html:
username:<br>
<input id="username" type="text" name="username" ><br>
password:<br>
<input id="password" type="text" name="password" ><br><br>
<input type="submit" onclick=logUserIn() value="Log in">
<input type="submit" onclick=submitToDatabase() value="Sign Up">
<input type="submit" onclick=getUsers() value="Get Users">
如何才能仅使用javascript提交此数据,那么如果他们输入正确的凭据,则会将他们带到页面,例如welcome.html? 我知道我可能需要使用表单并提交,但我不确定如何在JS中单独完成并且不使用PHP。 我希望它说欢迎用户(用户是他们登录的电子邮件)
答案 0 :(得分:0)
为此,您需要检查错误,然后继续进行重定向。
以下是Firebase文档中的示例代码:
public class FooFragment extends Fragment implements FooAdapter.Listener {
// In onCreate()
...
FooAdapter adapter = new FooAdapter();
adapter.addListener(this);
...
@Override public void onItemClicked() {
// Add your logic here.
}
}
了解更多信息。 // Sign in with email and pass.
// [START authwithemail]
firebase.auth().signInWithEmailAndPassword(email, password)
.then(function(user) {
console.log(user);
// DO YOUR REDIRECTION HERE
}).catch(function(error) {
if(error) throw error;
});
方法返回firebase.Promise。
signInWithEmailAndPassword(email,password)返回包含非null firebase.User的firebase.Promise
您可以在此处阅读更多内容:https://firebase.google.com/docs/reference/js/firebase.Promise#then
对于重定向,您可以使用signInWithEmailAndPassword
。这是一份文件。链接:https://developer.mozilla.org/en-US/docs/Web/API/Location/replace
希望这有帮助!
答案 1 :(得分:0)
始终使用onAuthStateChanged()
来跟踪用户的登录或注销状态。
//Handle Account Status
firebase.auth().onAuthStateChanged(user => {
if(user) {
window.location = 'welcome.html'; //If User is logged in, redirect to welcome page
}
});
上述代码将确保如果用户成功登录,则会将其重定向到欢迎页面。