У меня возникли проблемы с аутентификацией пользователей с использованием firebase с помощью моего веб-приложения. Всякий раз, когда я пытаюсь войти в систему, firebase.auth(). SignInWithEmailAndPassword (email, pass); вызывается функция, запрос выполняется успешно, и запускается прослушиватель authStateChanged. Однако внутри получателя firebaseUser всегда возвращает null.Аутентификация Firebase успешно, но возвращает нулевого пользователя (Web)
Я пробовал разместить веб-приложение с личного сервера и разрешить доступ к домену для моей базы данных firebase.
У меня также есть приложение для Android, которое работает безупречно с той же БД.
Вот мой код:
login.js:
(function() {
// Initialize Firebase
var config = {
//CONFIG INFORMATION HERE
};
firebase.initializeApp(config);
// Get elements
const txtEmail = document.getElementById('username');
const txtPassword = document.getElementById('password');
const loginButton = document.getElementById('loginButton');
loginButton.addEventListener('click', e => {
const email = txtEmail.value;
const pass = txtPassword.value;
const auth = firebase.auth();
const promise = auth.signInWithEmailAndPassword(email, pass);
promise.catch(e => console.log(e.message));
});
firebase.auth().onAuthStateChanged(firebaseUser => {
if(firebaseUser){
console.log(firebaseUser);
}
else{
console.log('not logged in');
}
})
}());
Логин HTML:
<!DOCTYPE html>
<html>
<head>
<title>Athlete Buddy Login</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="allStyleSheet.css">
<link rel="stylesheet" type="text/css" href="login.css">
<link rel="icon" type="image/gif" href="pictures/ABLogo.png">
<script src="https://www.gstatic.com/firebasejs/live/3.1/firebase.js"></script>
</head>
<body>
<nav>
<a href="#">Home</a>
<a href="#">Login</a>
<a href="#">Features</a>
</nav>
<img src="pictures/loginArt.png" id="loginTitle">
<div id="loginFormDiv">
<form id="loginForm">
Username: <input id="username" class="field" type="text" name="Username"> <br><br>
Password: <input id="password" class="field" type="Password" name="Password"> <br><br>
<input id="loginButton" type="submit" value="Login">
<a id="createAccountButton" href="#">Create Account</a>
<a id="forgotPassword" href="http://www.youtube.com/watch?v=dQw4w9WgXcQ">forgot password?</a>
</form>
</div>
<script src="login.js"></script>
</body>
</html>
Это кажется маловероятным, что авторизация не удастся, не вызывая 'поймать()'. Можете ли вы настроить воспроизведение в jsbin, чтобы я мог посмотреть? –
https://jsbin.com/sonenup/1 –
Я никогда раньше не использовал jsbin, скорее всего, я сделал это неправильно. Логин: [email protected] password: testing123 –