【问题标题】:Uncaught Reference Error: Firebase is not defined未捕获的参考错误:未定义 Firebase
【发布时间】:2016-10-03 17:07:54
【问题描述】:

我尝试使用以下代码对新注册的用户进行身份验证,尽管它甚至无法初始化 firebase,并弹出此错误:

Uncaught ReferenceError: firebase is not defined

下面是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>register</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <script src='https://cdn.firebase.com/js/client/2.4.2/firebase.js'></script>
</head>
<body>
    <script>
        var config = {
            databaseURL: 'https://apcs-4bfaa.firebaseio.com/'
        };
        firebase.initializeApp(config);

        var ref = new Firebase("https://apcs-4bfaa.firebaseio.com/");

        function registerUser() {
            var email = document.getElementById("email").value;
            var password = document.getElementById("password").value;
            ref.auth().createNewUserWithEmailAndPassword(email, password);
        }
    </script>

    <div class="form">
        <div id="error"></div>
        <form onsubmit="registerUser();">
            <label>Email:</label>
            <input type="text" name="email" id="email"><br>
            <label>Password:</label>
            <input type="password" name="pwd" id="password"><br>
            <input type="submit" value="Sign Up"><br>
        </form>
    </div>
</body>
</html>

【问题讨论】:

  • Web Quickstart 没有显示对firebase 对象的任何引用,它似乎完成的只是两次定义相同的 URL。 new Firebase() 不是全都搞定了吗?
  • @ÁlvaroGonzález 有一个新的SDK,其中包括firebase 对象。查看firebase.google.com
  • 您使用的是相当旧的文档。请务必使用最新的(适用于任何框架)以确保一切正常。 @DavidEast 有正确的答案。
  • @AlanThomas 它说 ref.auth() 不是函数。

标签: javascript html firebase firebase-realtime-database


【解决方案1】:

您的代码在旧的2.4.2 API 和3.0 SDK 之间混用了。

没有更多的new Firebase() 电话。您需要使用新的 SDK,目前为3.0.3,然后配置您的应用。

<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase.js"></script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>'
  };
  firebase.initializeApp(config);
</script>

配置完成后,您可以创建引用。

firebase.database().ref()

所以你的情况是:

<script>
    var config = {
        databaseURL: 'https://apcs-4bfaa.firebaseio.com/'
    };
    firebase.initializeApp(config);

    // new 3.0 SDK method!
    var ref = firebase.database().ref();

    function registerUser() {
        var email = document.getElementById("email").value;
        var password = document.getElementById("password").value;
        firebase.auth().createNewUserWithEmailAndPassword(email, password);
    }
</script>

Check out the docs for more info.

【讨论】:

  • 没有。它说 ref.auth() 不是一个函数。
  • 抱歉,我从您的示例中复制并粘贴了代码。它需要更新为firebase.auth() 而不是ref.auth()
猜你喜欢
  • 2017-01-02
  • 2020-08-31
  • 2021-12-08
  • 2021-12-11
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2016-06-11
  • 2014-10-03
相关资源
最近更新 更多