используя js для входа в систему пользователя, который уже хранится в Firebase DB - PullRequest
0 голосов
/ 29 октября 2018

Я создал пользователя в своей базе данных Firebase и хочу использовать javascript для входа в систему этого пользователя, а затем перенаправить его на страницу admin.html, которую я создал, я использую bootstrap и jquery, и они работают нормально, я думаю

сейчасэто моя домашняя страница index.html, которая содержит форму входа

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

    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet"
              href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
              crossorigin="anonymous"/>
        <script src="http://code.jquery.com/jquery-3.3.1.slim.min.js"
                integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
                crossorigin="anonymous">
        </script>
        <link rel="stylesheet" href="css/style.css"/>
        <! to connect firebase to our project -->
        <script src="https://www.gstatic.com/firebasejs/5.5.6/firebase.js"></script>
    </head>

    <! these values of each class="" are coming from bootstrap -->
    <body class="bg-dark">

        <div id="login-card" class="card">
            <div class="card-body">
                <h1>Wallpaper App Admin</h1>
                <form id="login-form">
                    <div class="form-group">
                        <!====================================================
                        this label is related to the email input under it
                        cause the value of for="" is the id of the email input
                        ===================================================-->
                        <label for="email">email</label>
                        <input type="email" id="email" class="form-control"/>
                    </div>
                    <div class="form-group">
                        <label for="passsword">passsword</label>
                        <input type="passsword" id="passsword" class="form-control"/>
                    </div>
                    <div class="form-group">
                        <button id="btn-login" type="button" class="btn btn-primary">Login</button>
                    </div>
                </form>
            </div>
        </div>
        <! link the javascript files that are inside js folder with this page -->
        <script src="js/app.js"></script>
        <script>
            firebase.auth().onAuthStateChanged(function(user){
                if (user) {
                    // user is logged in
                    window.location.href = "admin.html";
                }
            });
        </script>
    </body>

</html>

, и это файл admin.html, к которому я хочу перейти после того, как процесс входа в систему

<!DOCTYPE html>
<html>

   <head>
      <meta charset="utf-8" />
      <link rel="stylesheet"
              href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
              crossorigin="anonymous"/>
        <script src="http://code.jquery.com/jquery-3.3.1.slim.min.js"
                integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
                crossorigin="anonymous">
        </script>
        <link rel="stylesheet" href="css/style.css"/>
        <! to connect firebase to our project -->
        <script src="https://www.gstatic.com/firebasejs/5.5.6/firebase.js"></script>
   </head>

   <body>
      <h1>Hey you are logged in!</h1>
      <script src="js/app.js"></script>
      <script>
            firebase.auth().onAuthStateChanged(function(user){
                if (!user) {
                    // user is not logged in
                    window.location.href = "index.html";
                }
            });
        </script>
   </body>
</html>

, но один разЯ нажимаю кнопку входа в систему и получаю это сообщение:

Похоже, вы используете сборку разработки Firebase JS SDK.При развертывании приложений Firebase в рабочей среде рекомендуется импортировать только отдельные компоненты SDK, которые вы собираетесь использовать.

Для сборок CDN они доступны следующим образом (замените на имя компонента, т.е.аутентификация, база данных и т. д.):

https://www.gstatic.com/firebasejs/5.0.0/firebase-.js

Я перепробовал все, изменил версию firebase внутри ссылки на 5.0.0 вместо 5.5.6, и такая же проблема возникает

также появляется другая ошибка, которая говорит о том, что второй параметр signInWithEmailAndPassword должен быть допустимой действительной строкой, даже если я столько раз менял ее, а проблема все та же

примечание: я следую некоторым инструкциям поyoutube, я новичок в этом, поэтому, пожалуйста, ведите меня

1 Ответ

0 голосов
/ 29 октября 2018

Прежде всего, эта ошибка является лишь предупреждением - она ​​говорит вам не включать всю Firebase:

<script src="https://www.gstatic.com/firebasejs/5.5.6/firebase.js"></script>

Просто используйте то, что вам нужно, например Core, Auth, т. Д.

Во-вторых, когда вы нажимаете кнопку для входа в систему, вам необходимо вызвать функцию LogInUser из Firebase.Я не вижу в вашем коде, вы используете обычный пароль / имя пользователя?Это может быть что-то вроде:

firebase.auth().signInWithEmailAndPassword(*TEXTEMAIL*, *TEXTPASSWORD*).then(function() {
// Userlogin. 

}).catch(function(error) {
  // An error happened.
  var errorCode = error.code;
  var errorMessage = error.message;
}); 

Вы также можете добавить функцию .onSuccess(), чтобы при официальном входе в систему вы могли вызвать admin.html.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...