Javascript Firebase无法使用电子邮件和密码注册用户

Javascript Firebase无法使用电子邮件和密码注册用户,javascript,html,firebase,Javascript,Html,Firebase,我正在使用firebase在我的网站上使用电子邮件和密码注册用户。我已在控制台上启用电子邮件和密码注册。当我在网页上注册用户时,用户电子邮件和密码不会传递给Firebase,也不会显示任何错误 她是我的前端代码 <!DOCTYPE html> <html> <head> <title>Registration </title> <link rel="stylesheet" type="text/css" href="sty

我正在使用firebase在我的网站上使用电子邮件和密码注册用户。我已在控制台上启用电子邮件和密码注册。当我在网页上注册用户时,用户电子邮件和密码不会传递给Firebase,也不会显示任何错误

她是我的前端代码

<!DOCTYPE html>
<html>
<head>
  <title>Registration </title>
  <link rel="stylesheet" type="text/css" href="style.css">
  <script src="https://www.gstatic.com/firebasejs/5.8.6/firebase.js"></script>
  <script src="https://www.gstatic.com/firebasejs/5.8.6/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/5.8.6/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/5.8.6/firebase-database.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
  <script src="signup.js" defer></script>
</head>

<body>    
  <form id="form">
    <div class="header">
        <h2>Sign up as a Language Learner</h2>
    </div>
    <div class="input">
      <input id="username" type="text" name="username" placeholder="Username">
    </div>
    <div class="input">
      <input id="email" type="email" name="email" placeholder="Email">
    </div>
    <div class="input">
      <input id="password1" type="password" name="password_1" placeholder="Password">
    </div>
    <div class="input">
      <input id="password2" type="password" name="password_2" placeholder="Confirm Password">
    </div>
    <div>
      <p id="message">
      </p>
    </div>
    <div class="input">
      <button id="register_button" class="btn" name="signup">Register</button>
        <p class="input">Already a member? <a href="login.html">Sign in</a>
       &nbsp <a href="/">Cancel</a>
      </p>
    </div>
  </form>
  <div id="signup_success">
    <h2>Sign-up Successful!</h2>
  </div>

</body>
</html>
我使用控制台中的数据进行了正确的配置设置。如果我去掉
register\u button.onclick=function()
,则执行
firebase.auth().createUserWithEmailAndPassword
。我试图添加
register\u按钮在最后,它也不起作用

我不知道这有什么问题,非常感谢您的帮助和建议。提前谢谢


*编辑:多亏了下面的@Fire-in-D-Hole,这是因为我在HTML中使用了标记,将标记与我们在Firebase上提交的内容弄乱了。经验教训:使用Firebase时切勿使用。您需要使用
.onAuthStateChanged
观察者来处理登录状态更改。

您的代码绝对正确。但是,方法
createUserWithEmailAndPassword(email,password1)
中似乎有一个额外的空间,这导致了问题

请将其更改为
createUserWithEmailAndPassword(email,password1)

此外,当我单击Register时,您似乎正在使用
表单标记
,并且这些值显示在地址栏中(见下文)。建议您检查,因为您可能不想在地址栏中显示详细信息。

用户注册屏幕截图:

最后,您使用两个字段作为密码,确保您编写了两个密码字段必须匹配的逻辑。在下面添加我尝试过的代码,但它没有表单标记

var password2=document.querySelector(“#password2”).value;
var register_button=document.querySelector(“register_button”);
变量配置={
阿皮奇:“111”,
authDomain:“1111”,
数据库URL:“1111”,
投射物:“1111”,
storageBucket:“11111”,
messagingSenderId:“111”
};
firebase.initializeApp(配置);
register\u button.onclick=函数(){
var email=document.querySelector(“#email”).value;
var password1=document.querySelector(“#password1”).value;
var password2=document.querySelector(“#password2”).value;
//警报(“heyman im in register button”);
//控制台日志(“电子邮件”+电子邮件);
//console.log(“password1值”+password1);
//log(“password2值”+password2);
firebase.auth().createUserWithEmailAndPassword(电子邮件,密码1).catch(函数(错误){
//警惕(“你好”);
var errorCode=error.code;
var errorMessage=error.message;
document.querySelector(“#message”).innerHTML=errorCode+”:“+errorMessage;
});
}

登记处
注册成为语言学习者

登记

已经是会员了吗?  

注册成功!
它是如何工作的?你有错误吗?我很怀疑这是答案。这个问题是关于无法创建帐户和登录。嗨,Ron,我如何为用户注册实现.onAuthStateChanged?谢谢
var password2 = document.querySelector("#password2").value;
var register_button = document.querySelector("#register_button");
var config = {
  apiKey: "111",
  authDomain: "222",
  databaseURL: "333",
  projectId: "444",
  storageBucket: "555",
  messagingSenderId: "666"
};
firebase.initializeApp(config);

register_button.onclick = function() {
  var email = document.querySelector("#email").value;
  var password1 = document.querySelector("#password1").value;
  firebase.auth().createUserWithEmailAndPassword(email, password1).catch(function(error) {
    alert("hello");
    var errorCode = error.code;
    var errorMessage = error.message;
    document.querySelector("#message").innerHTML = errorCode + ": " + errorMessage;
  })
}