Firebase授权和标准Google App Engine - 无法登录或注册

时间:2017-09-13 04:18:48

标签: email google-app-engine firebase passwords firebase-authentication

我有一个谷歌应用引擎,我最近决定添加应用引擎。我已经完成了这些步骤,将我的google项目导入firebase,添加了所有初始化代码,以及一些用于登录和注册的临时函数。然而,该应用程序永远不会超过我尝试登录的点。我一直在搜索,并尽我所能。我敢肯定我只是错过了一些小东西,但可以使用另一双眼睛。感谢。

这是我的html文件:

<!DOCTYPE html>
<html>
<head>
    <title>Hello Endpoints!</title>
    <script type="text/javascript" src="/js/base.js"></script>

    <!-- SCRIPT FOR FIREBASE -->
    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase.js"></script>
    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase-database.js"></script>

    <script type="text/javascript" src="/js/firebaseApp.js"></script>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap.css">
    <link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap-responsive.css">
    <link type="text/css" rel="stylesheet" href="/css/style.css">
</head>
<body>
<div class="container">
    <input id="txtEmail" type="email" placeholder="Email">
    <input id="txtPassword" type="password" placeholder="Password">

    <button id="btnLogin" class="btn btn-action" onclick="loginEvent()">
    Log in
    </button>
    <button id="btnSignUp" class="btn btn-secondary" onclick="signupEvent()">
    Sign Up
    </button>
    <button id="btnLogout" class="btn btn-action hide">
    Log out
    </button>

    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase.js"></script>
    <script>
      // Initialize Firebase
      var config = {
        apiKey: "<API_KEY>",
        authDomain: "<PROJECT_ID>.firebaseapp.com",
        databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
        projectId: "<PROJECT_ID>",
        storageBucket: "<BUCKET>.appspot.com",
        messagingSenderId: "<SENDER_ID>",
      };
      firebase.initializeApp(config);
    </script>


</div>
<div class="container">

    <form action="javascript:void(0);">
        <h2>Add Asteroid</h2>
        <div><span class="label">Name: </span><input id="asteroidName" /></div>
        <div><span class="label">Diameter: </span><input id="asteroidDiam" /></div>
        <div>Dimensions:</div>
        <div><span class="dimlabel">Length: </span><input id="asteroidLength" /></div>
        <div><span class="dimlabel">Width: </span><input id="asteroidWidth" /></div>
        <div><span class="dimlabel">Height: </span><input id="asteroidHeight" /></div>
        <div><span class="label">Mean Distance From Sun: </span><input id="asteroidDist" /></div>
        <div><input id="addAsteroid" type="submit" class="btn btn-small" value="Submit"></div>
    </form>

    <form action="javascript:void(0);">
        <h2>Refresh Asteroids</h2>
        <div><input id="listAsteroids" type="submit" class="btn btn-small" value="Refresh"></div>
    </form>

    <table id="AsteroidTable">
        <tr>
            <th>Asteroid</th>
            <th>Diameter</th>
            <th>Dimensions</th>
            <th>Mean Distance From Sun</th>
        </tr>
     </table>

    <script type="text/javascript">
        function init() {
            google.devrel.samples.hello.init('//' + window.location.host + '/_ah/api');
        }
    </script>
    <script src="https://apis.google.com/js/client.js?onload=init"></script>
</div>
</body>
</html>

这是我的FirebaseApp.js:

function loginEvent()
{   
    const email = document.getElementById('txtEmail');
    const pass = document.getElementById('txtPassword');

    email.value = "HELLO";
    email.value = firebase.app().name;
    pass.value = "NO";

    firebase.auth().signInWithEmailAndPassword(email, pass)
    .catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  if (errorCode === 'auth/wrong-password') {
    alert('Wrong password.');
  } else {
    alert(errorMessage);
  }
  console.log(error);
});

    pass.value = "YES"
}

function signupEvent()
{
    const email = document.getElementById('txtEmail');
    const pass = document.getElementById('txtPassword');

    firebase.auth().createUserWithEmailAndPassword(email, pass).catch(function(error) {
          // Handle Errors here.
          var errorCode = error.code;
          var errorMessage = error.message;
          // ...
        });
}

我正在更改电子邮件和密码的值,以确保我达到了这一点。打印出firebase.app()的值.name返回[DEFAULT]。我还确保在Firebase中选择了电子邮件/密码选项。感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

您只需要包含https://www.gstatic.com/firebasejs/4.3.1/firebase.js,其中包含所需的所有模块。不需要包含所有其他内容:firebase-app.js,firebase-auth.js等。

signInWithEmailAndPasswordcreateUserWithEmailAndPassword也接受字符串参数。您正在传递输入元素。因此,控制台中应该抛出错误。因此,不是email,而是传递email.value