想在js中匹配firestore数据库中的电子邮件和密码

电子邮件和密码在来自应用程序的 firestore 中,我的工作是在 js 中创建管理面板,并且该管理面板具有登录页面,每当有人输入电子邮件和密码时,我的工作就是检查电子邮件和密码(如果匹配)到 firestore 电子邮件和密码的电子邮件和密码,然后显示他/她的管理面板,否则显示一个弹出窗口,表明您未通过身份验证。

想在js中匹配firestore数据库中的电子邮件和密码

form.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Form</title>
    <meta content='width=device-width,initial-scale=1.0,shrink-to-fit=no' name='viewport' />
    <!--     Fonts and icons     -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://www.gstatic.com/firebasejs/8.3.3/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/8.3.3/firebase-firestore.js"></script>
    <!-- TODO: Add SDKs for Firebase products that you want to use
     https://firebase.google.com/docs/web/setup#available-libraries -->
    <script src="https://www.gstatic.com/firebasejs/8.3.3/firebase-analytics.js"></script>

    <link rel="stylesheet" type="text/css" href="form.css">
</head>

<body>
    <div class="container">
        <div class="row">
            <div class="col-lg-3 col-md-2"></div>
            <div class="col-lg-6 col-md-8 login-box">
                <div class="col-lg-12 ">
                </div>
                <div class="col-lg-12 login-title">
                    ADMIN PANEL
                </div>

                <div class="col-lg-12 login-form">
                    <div class="col-lg-12 login-form">
                        <form>
                            <div class="form-group">
                                <label class="form-control-label">EMAIL</label>
                                <input type="text" class="form-control email" name="email" id="email"  >
                            </div>

                            <div class="form-group">
                                <label class="form-control-label">COMPANY NAME</label>
                                <input type="text" class="form-control" name="companyname"  id="companyname">
                            </div>

                            <div class="form-group">
                                <label class="form-control-label">PASSWORD</label>
                                <input type="password" class="form-control" name="password" id="password"  >
                            </div>

                            <div class="col-lg-12 loginbttm">
                                <div class="col-lg-6 login-btm login-text">

                                </div>
                                <div class="col-lg-6 login-btm login-button" style='float: right'>
                                    <button class="btn btn-outline-primary" onclick="login()">LOGIN</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
        <script src="from.js"></script>

        <script>
            // Your web app's Firebase configuration
            // For Firebase JS SDK v7.20.0 and later,measurementId is optional
            var firebaseConfig = {
                apiKey: "AIzaSyCBFPUeRkDtvB9oUYHKH18co6n8sVkktd0",authDomain: "insurance-app-515f9.firebaseapp.com",projectId: "insurance-app-515f9",storageBucket: "insurance-app-515f9.appspot.com",messagingSenderId: "507922592990",appId: "1:507922592990:web:6ab80539593fc46ea43e4f",measurementId: "G-85KC0RZSV8"
            };
            // Initialize Firebase
            firebase.initializeApp(firebaseConfig);
            firebase.analytics();
            const db = firebase.firestore();
            db.setting({ timestampsInsnapshots: true });
        </script>

        <script src="../assets/js/plugins/sweetalert2.js"></script>



</body>

</html>

form.js

function login() {
// var getId=localStorage.getItem("getId");
var useremail = document.getElementById("email").value;   
var companyname = document.getElementById("companyname").value;
var password = document.getElementById("password").value;


db.collection('Companies List').where("CompanyEmail","==",useremail,"CompanyPassword",password);
Swal.fire({
    title:'Match!',text: 'Welcome to the dashboard',type: 'success',}).then(function() {
  window.location = "dashboard.html";
  });

}

请帮忙

lyx123hsh 回答:想在js中匹配firestore数据库中的电子邮件和密码

您的查询似乎符合您的要求。您只需要检查是否有任何文档与用户提供的数据匹配。您可以通过检查返回的快照是否为空或是否有匹配的文档来完成

const docRef = db.collection('Companies List')
   .where("CompanyEmail","==",useremail)
   .where("CompanyPassword",password);
// ^ separate .where()

docRef.get().then((snapshot) => {
  if (snapshot.empty) {
    // no docs matched
    console.log("Invalid Credentials")
  } else {
    console.log(snapshot.docs[0].data())
    Swal.fire({
      title:'Match!',text: 'Welcome to the dashboard',type: 'success',}).then(function() {
      window.location = "dashboard.html";
    });
  }
})

请注意,理想情况下,您应该避免直接使用 Firestore 或任何数据库进行身份验证。您可以使用 Firebase 身份验证登录用户,然后将用户的 UID 存储在相应的公司文档中。

本文链接:https://www.f2er.com/2973.html

大家都在问