Firebase является «неопределенным»

#javascript #firebase

#javascript #firebase

Вопрос:

Я просто решил попробовать новый firebase SDK для JavaScript, но я продолжаю получать эту ошибку в своей консоли, любая помощь или совет приветствуются

Код:

 <script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-app.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/7.21.1/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-firestore.js"></script>
<!--<script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-storage.js"></script>  -->

<script>
  // Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
  var firebaseConfig = {
    <!-- Not necessary-->
  };

  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.analytics();
  //var db = app.firestore();
</script>

<script>
  function sendMessageToServer(msg) {
    var object = {
      value: msg
    };


    firebase.firestore().collection("Deskop").doc().set(object)
      .then(function() {
        adder.print("Data saved successfully");
      })
      .catch(function(err) {
        adder.print("Error writing document: "   err);
      });
  }
</script>
  

Ошибка:

 SCRIPT5009: 'firebase' is undefined
fire.html (34,5)
  

Я перепробовал все и убедился, что следовал инструкциям в консоли firebase, но все та же ошибка

Комментарии:

1. Это firebase- app.js опечатка? Другая проблема заключается в том, что ваш код может быть запущен до завершения загрузки скриптов.

2. <script src="https://www.gstatic.com/firebasejs/7.21.1/firebase- app.js"></script> должно быть 404, поскольку на этом URL-адресе нет скрипта.

3. попробуйте добавить отложенную загрузку для всех сценариев firebase

4. Я пробовал это, но все равно произошло то же самое

Ответ №1:

На днях я столкнулся с подобной проблемой. Вот решение, которое я нашел:

 <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Application 2020</title>
    <link rel="icon" type="image/png" href="../static/favicon.ico" />
    <link href="../static/css/site.css" type="text/css" rel="stylesheet" />
  </head>

  <body>
    <div class="container" id="container"></div>
    <script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.21.1/firebase-firestore.js"></script>
    <script defer type="module" src="./App.js"></script>
  </body>
</html>
  

Загрузите скрипты в конце, отложите запуск js.
Затем оттуда: firebase.initializeApp(firebaseConfig);

Комментарии:

1. Я пробовал это, но все еще не работает ни с одним другим предложением

2. npm init ; npm i http-server --save ; "scripts": { "start": "http-server -o --cors" } в package.json ? Вы пробовали это? Кроме того, это был единственный обходной путь, который сработал для меня, с отсрочкой запуска js-файла модуля следующим образом: export default (() => { /* firebase init here */ })();