Javascript 如何验证firebase数据库中是否存在特定电子邮件以及如何获取该电子邮件以进行登录验证

Javascript 如何验证firebase数据库中是否存在特定电子邮件以及如何获取该电子邮件以进行登录验证,javascript,firebase-realtime-database,Javascript,Firebase Realtime Database,实际上我已经创建了一个注册表,但是在登录页面中有一个小的逻辑问题。在登录页面中,每当用户输入数据并按下提交按钮时,应通过验证输入字段中输入的特定电子邮件是否存在于firebase中,将其定向到其特定页面 <div class="row"> <div class="container"> <h2>Contact Form</h2> <div class="alert alert

实际上我已经创建了一个注册表,但是在登录页面中有一个小的逻辑问题。在登录页面中,每当用户输入数据并按下提交按钮时,应通过验证输入字段中输入的特定电子邮件是否存在于firebase中,将其定向到其特定页面

  <div class="row">
        <div class="container">
            <h2>Contact Form</h2>
            <div class="alert alert-success success-message" style="display:none;">Form submitted successfully.</div>
            <form id="contactForm">

                <div class="form-group">
                    <label for="exampleEmail">Email</label>
                    <input type="email" class="form-control email" id="exampleEmail" placeholder="Enter Email" required>
                </div>
                <div class="form-group">
                    <label for="exampleEmail">password</label>
                    <input type="password" class="form-control email" id="examplePass" placeholder="Enter Email" required>
                </div>

                <button type="submit" class="btn btn-primary">Submit</button>
            </form>
            <div id ="data"></div>
        </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

    <script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-database.js"></script>
    <script>
var email, password ;
        var firebaseConfig = {
          apiKey: "AIzaSyDTMz1qgSStS6b6NLkikEVDeI-ZTkCLyEM",
          authDomain: "venderapp-c42cf.firebaseapp.com",
          databaseURL: "https://venderapp-c42cf.firebaseio.com",
          projectId: "venderapp-c42cf",
          storageBucket: "venderapp-c42cf.appspot.com",
          messagingSenderId: "882847151210",
          appId: "1:882847151210:web:6b7392dbc76b437386c613"
        };
        firebase.initializeApp(firebaseConfig);

      $('#contactForm').submit(function(e) {
          e.preventDefault();
             email=document.getElementById("exampleEmail").value;
          password=document.getElementById("examplePass").value;
            firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {

      console.log("logged in");
      var errorCode = error.code;
      var errorMessage = error.message;
      // ...
    });
    // ...
  });

      firebase.auth().onAuthStateChanged(user => {
        console.log(user);
        if(user) {
        console.log(user);
        }
      });

    </script>

联系方式
表单提交成功。
电子邮件
密码
提交
var电子邮件、密码;
var firebaseConfig={
apiKey:“AIzaSyDTMz1qgSStS6b6NLkikEVDeI ZTkCLyEM”,
authDomain:“venderapp-c42cf.firebaseapp.com”,
数据库URL:“https://venderapp-c42cf.firebaseio.com",
projectId:“venderapp-c42cf”,
storageBucket:“venderapp-c42cf.appspot.com”,
messagingSenderId:“882847151210”,
appId:“1:882847151210:web:6B7392DBC76B4373386C613”
};
firebase.initializeApp(firebaseConfig);
$(#contactForm')。提交(功能(e){
e、 预防默认值();
email=document.getElementById(“ExampleMail”).value;
密码=document.getElementById(“examplePass”).value;
firebase.auth(){
控制台日志(“登录”);
var errorCode=error.code;
var errorMessage=error.message;
// ...
});
// ...
});
firebase.auth().onAuthStateChanged(用户=>{
console.log(用户);
如果(用户){
console.log(用户);
}
});

我在用Java开发Android应用程序时遇到了完全相同的问题。我可以使用Firebase Authentication SDK对用户进行身份验证,但无法检查该用户是否存在于数据库中,坦率地说,除非您显式地在数据库中写入该用户,否则该用户不存在于数据库中

因此,我所做的是,一旦用户的电子邮件被验证,比如使用谷歌登录或Facebook登录,我就会检索当前用户的电子邮件或用户令牌,并将其保存在
Users
节点中。Firebase实时数据库允许数据查询,这对于免费计划来说相当快,所以我想这样做是可以的


遗憾的是,身份验证部分不会自动将用户数据保存到数据库中。除非整个身份验证系统基于Firebase实时数据库而不是其他数据库。

“验证Firebase中是否存在特定电子邮件。”你能详细说明你想检查哪个Firebase产品的电子邮件地址吗?实际上很抱歉,我没有正确地回答你的问题。但是我想在实时Firebase数据库上进行检查。这是你想要的吗?谢谢你的澄清。请记住,Firebase身份验证用户不会自动插入数据库。您的代码没有显示与数据库的交互,因此该代码的结果是数据库中没有用户。如果要将用户存储在数据库中,应该为此编写代码。我建议在这里做一些搜索,因为这已经被很好地介绍过了。如果你想搜索数据库,搜索也是一种很好的方法,可以找到人们以前做过的事情。实际上,我已经编写了代码,可以在另一个HTML文件中将数据读写到数据库中。但在这个文件中,我只想验证用户。