Firebase Web(登录电子邮件)无法正常工作

时间:2017-10-19 02:13:15

标签: javascript firebase firebase-authentication

我一直在努力让Firebase Auth为我的网站工作。 我使用本地服务器运行HTML代码。

Firebase正在成功注册用户(它们显示在我的Firebase控制台中),但它没有在中签名。

我正在使用此代码检查用户是否已登录。它始终显示"用户未登录。"

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    console.log(user);
    console.log('User is signed in');
  } else {
    console.log(user);
    console.log('User is not signed in');
  }
});

我已浏览过文档并观看了Firecast视频以及其他一些教程。

我的HTML代码:

<div class="login w3-display-middle">
  <form class="login-container">
    <p><input type="text" placeholder="Email" id="email"></p>
    <p><input type="password" placeholder="Password" id="password"></p>
    <p><button class="w3-blue" id="signin" style="width:100%">LOG IN </button></p>
    <p><button class="w3-blue" id="signup" style="width:100%">SIGN UP </button></p>
    <p><button class="w3-red" id="signout" style="width:100%">SIGN OUT </button></p>
  </form>
</div>

Javascript(包含在下面 HTML代码,在正文标记关闭之前:

<script src="https://www.gstatic.com/firebasejs/4.5.2/firebase.js"></script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: <I have included my apiKey>,
    authDomain: <I have included my authDomain>,
    databaseURL: <Included my database URL>,
    projectId: <Used my project ID>,
    storageBucket: <Used this as well>,
    messagingSenderId: <And this too>
  };
  firebase.initializeApp(config);
</script>

<script>
  const txtEmail = document.getElementById("email");
  const txtPassword = document.getElementById("password");

  signin.addEventListener('click', e => {
    //Get email and password
    const email = txtEmail.value;
    const pass = txtPassword.value;
    console.log(txtEmail.value);//Shows correct value
    console.log(txtPassword.value);//Shows correct value
    const promise = firebase.auth().signInWithEmailAndPassword(email, pass);
    promise.catch(e => console.log(e.message));
  });

  signup.addEventListener('click', e => {
    //Get email and password
    const email = txtEmail.value;
    const pass = txtPassword.value;
    const auth = firebase.auth();

    auth.createUserWithEmailAndPassword(email,pass)
    .catch(function(error){
      console.log(error.code);
      console.log(error.message);
    });
  });

  signout.addEventListener('click',e=> {
    firebase.auth().signOut().then(function() {
      // Sign-out successful.
    })
    .catch(function(error) {
      console.log(error.code);
      console.log(error.message);
    });
  });

  firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
      console.log(user);
      console.log('User is signed in');
    } else {
      console.log(user);
      console.log('User is not signed in');
    }
  });
</script>

真的需要帮助搞清楚这一点。我现在花了4个小时。此外,当我最初注册用户时,它也会签名(显示在Firebase控制台中!)。它真是太奇怪了。

0 个答案:

没有答案