登录按钮不适用于firebase身份验证

时间:2017-10-12 17:19:55

标签: javascript firebase firebase-authentication

我是firebase的新手。

我正在尝试编写一个用户登录的简单登录页面,然后重定向到home.html。

这是我的索引页面:

<html>
<body>
  <script src="https://gstatic.com/firebasejs/live/3.1/firebase.js"></script>
  <div class="container">
    <input id="txtEmail" type="email" placeholder="Email">
    <input id="txtPassword" type="password" placeholder="Password">
    <button id="btnLogin" class="btn btn-action">Log in</button>
    <button id="btnSignUp" class="btn btn-secondary">Sign Up</button>
    <button id="btnLogout" class="btn btn-action hide">Log out</button>
  </div>
  <script src="app.js"></script>
</body>
</html>

这是我的app.js:

(function() {
  // Initialize Firebase
  const config = {
    apiKey: "AIzaSyAPr9RXnW49MjSDLFaeBuGJBx7TeV5cCeQ",
    authDomain: "fir-test-bb3bd.firebaseapp.com",
    databaseURL: "https://fir-test-bb3bd.firebaseio.com",
    projectId: "fir-test-bb3bd",
    storageBucket: "fir-test-bb3bd.appspot.com",
    messagingSenderId: "509522467811"
  };
  firebase.initializeApp(config);

  // Get elements
  const txtEmail = document.getElementById('txtEmail');
  const txtPassword = document.getElementById('txtPassword');
  const btnLogin = document.getElementById('btnLogin');
  const btnSignUp = document.getElementById('btnSignUp');
  const btnLogout = document.getElementById('btnLogout');

  // Add login event
  btnLogin.addEventListener('click', e => {
    // Get email and pass
    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));
  });

  // Handle Account Status
  firebase.auth().onAuthStateChanged(user => {
    if (user) {
      window.location = 'home.html'; //After successful login, user will be redirected to home.html

      // Add signup event
      btnSignUp.addEventListener('click', e => {
        // Get email and pass
        // TODO: CHECK FOR REAL EMAIL
        const email = txtEmail.value;
        const pass = txtPassword.value;
        const auth = firebase.auth();

        // Sign in
        const promise = auth.CreateUserWithEmailAndPassword(email, pass);
        promise.catch(e => console.log(e.message));
      });

      // Add a realtime listener
      firebase.auth().onAuthStateChanged(firebaseUser => {
        if (firebaseUser) {
          console.log(firebaseUser);
        } else {
          console.log('not logged in');
        }
      });
    }
  });
});

当我输入有效的用户名和密码时,没有任何反应,当我输入无效的用户名和密码时,没有任何反应。当我检查控制台日志时,即使应该说明发生了什么,也绝对没有任何内容。

有什么想法吗?

再次感谢您的帮助。

更新1 这是新的登录位......仍然是同样的问题

//Add login event
btnLogin.addEventListener('click', e => {
  //Get email and pass
  const email = txtEmail.value;
  const pass = txtPassword.value;
  const auth = firebase.auth();
  const promise = auth.signInWithEmailAndPassword(email, pass);
{
promise.then(onResolve, onReject)
onResolve(e => console.log(e.message));
firebase.auth().onAuthStateChanged(user => {
if(user) }{
window.location = 'home.html';
}});

0 个答案:

没有答案