【问题标题】:ReferenceError: Can't find variable: firebase global codeReferenceError:找不到变量:firebase 全局代码
【发布时间】:2020-11-12 13:15:59
【问题描述】:

我不断收到错误:ReferenceError:

找不到变量:firebase global code@/script.js:10:26 at /script.js:10:26

我正确地初始化了它,但是当我引用变量时它会抛出一个错误。就初始化变量而言,我的代码看起来是正确的,但这是我的代码(我已经包含了我的 html 文件和我的 javascript 文件)。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>

  <label>User ID:</label><br>
  <input type="text" id="userId" /><br>

  <label>First Name:</label><br>
  <input type="text" id="firstName" /><br>

  <label>Last Name:</label><br>
  <input type="text" id="lastName" /><br>

  <label>Age:</label><br>
  <input type="text" id="age" /><br>

  <button id="addBtn">ADD</button>
  <button id="updateBtn">UPDATE</button>
  <button id="readBtn">READ</button><br>
  <button id="removeBtn">REMOVE</button>


  <body>
    <script src="script.js"></script>
  </body>

  <!-- The core Firebase JS SDK is always required and must be listed first -->
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.0.1/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.0.1/firebase-analytics.js"></script>

<script>
  // Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
  var firebaseConfig = {
    apiKey: "AIzaSyBRhn_MY7TNnTDPbf2WXU-5bio6zpd70UI",
    authDomain: "myawesomeproject-69436.firebaseapp.com",
    databaseURL: "https://myawesomeproject-69436.firebaseio.com",
    projectId: "myawesomeproject-69436",
    storageBucket: "myawesomeproject-69436.appspot.com",
    messagingSenderId: "299772211749",
    appId: "1:299772211749:web:b503b7a4fb44a8676f05cc",
    measurementId: "G-6MH270KGNL"
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.analytics();
</script>
</html>
const database = firebase.firestore();
const usersCollection = database.collection('users');

addBtn.addEventListener('click', e => {
  e.preventDefault();
  const ID = usersCollection.doc();

  ID.set({
    first_name: firstName.value,
    last_name: lastName.value,
    age: age.value
  })

  .then(() => {console.log("data written");})
  
});

【问题讨论】:

  • 你指的是哪一行代码?第二段代码与第一段代码有什么关系?是否缺少脚本包含?
  • 第一个是我的html代码,第二个是我的javascript。错误所指的行是“const database = firebase.firestore();”
  • 那么,它们有什么关系呢?你是如何运行第二个代码的?我没有看到包含它的脚本。我只看到 Firebase SDK 的脚本。
  • 我现在将所有代码添加到问题中,以便您更好地了解它的外观和运行方式,谢谢。

标签: javascript html firebase firebase-realtime-database reference


【解决方案1】:

您的 script.js 脚本必须发生在 firebase SDK 脚本之后,因此它们可以使用全局 firebase 变量。所以,把它移到后面:

<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.0.1/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.0.1/firebase-analytics.js"></script>
<script>
// code that includes firebase.initializeApp()
</script>
<script src="script.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 2018-04-24
    • 2020-01-15
    • 2016-10-30
    • 2012-03-18
    • 2015-11-16
    • 2011-05-22
    • 2014-12-16
    相关资源
    最近更新 更多