首页 > 解决方案 > Javascript 创建帐户未链接到 Firebase 数据库

问题描述

我已经在文件中设置了一个注册表单index.html并将其连接到index.js,这样当用户在相应的框中输入他们的电子邮件和密码并单击“提交”按钮时,它会将他们的详细信息添加到数据库中。

但是,没有将任何内容添加到数据库中,并且控制台中也没有给出任何错误。'firebase-database' 已包含在html head标签中。

这是 HTML 文件:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Hobbyist</title>
    <link rel="stylesheet" href="style.css" />
    <link href="https://fonts.googleapis.com/css?family=Poppins" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Ubuntu" rel="stylesheet">
    <script src="https://www.gstatic.com/firebasejs/5.8.1/firebase.js"></script>
    <script src="https://www.gstatic.com/firebasejs/5.8.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/5.8.1/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/5.8.1/firebase-database.js"></script>
    <script src="https://cdn.firebase.com/libs/firebaseui/3.1.1/firebaseui.js"></script>
    <link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/3.1.1/firebaseui.css" />
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
    <script type = "text/javascript" src="index.js"></script>
  </head>
  <body>
  <div id="sign-up">
    <h2>SIGN UP</h2>
    <form action="index.html" method="post">
      <input type="email" placeholder="Email..." id="create-email"><p />
      <input type="password" placeholder="Password..." id="create-password"><p />

      <button class="button" id="create-account">CREATE ACCOUNT</button>
    </form>
  </div>
  </body>
</html>

这是 JavaScript 文件:

    (function() {
      // the config details have been removed for security reasons
      var config = {
      apiKey: "---",
      authDomain: "---",
      databaseURL: "---",
      projectId: "---",
      storageBucket: "---",
      messagingSenderId: "---"
    };
    firebase.initializeApp(config);

    $(document).ready(() => {
      $('#create-account').click(() => {
        var email = document.getElementById('create-email').value;
        var password = document.getElementById('create-password').value;

        var db = firebase.database();

        db.ref('users/' + email).set({
          email: email,
          password: password
        });
      });
    });

 }());

我已经搜索并搜索了一种将信息添加到数据库的方法,但没有找到任何东西。有什么建议么?

标签: javascriptjqueryformsfirebasefirebase-realtime-database

解决方案


我们需要在这里查看 HTML 以及要报告的某种形式的错误。正在捕获的点击事件可能已关闭。控制台中没有任何内容的事实需要检查,因为 Firebase SDK 中当前有一些内容表明它将被弃用。我还将提出一个建议,将用户发布到用户参考而不是您上面的参考。Firebase 的文档存储功能将有助于我认为您在此处尝试完成的工作。

var db = firebase.database()
db.ref("/users").set({
  email: email,
  password: password
});

我要在这里检查的另一件事是.push()firebase 的方法。该set()方法将覆盖数据库中的任何用户。

最重要的是,这里有一些问题需要回答才能做出准确的解决方案。


推荐阅读