javascript - 未捕获的 TypeError : firebase. 存储不是函数

标签 javascript html firebase firebase-storage

我正在尝试创建对我的 firebase 存储的引用,但收到错误:未捕获的类型错误:firebase.storage 不是函数。 我该如何解决这个问题?

使用节点时有一个类似的问题,但就我而言,我没有使用节点,因此我不知道答案是否能解决我的问题。 TypeError: firebase.storage is not a function

我的代码如下所示:

在我的 app.js 中:

console.log("Initialisation Successful!");
var db = firebase.firestore();
var storage = firebase.storage();
var storageRef = storage.ref();
var imagesRef = storageRef.child('Images');


function addExerise(){
    var exerciseName = document.getElementById("ename").value;
    var exercisePart = document.getElementById("body_part").value;
    var exerciseLevel = document.getElementById("elevel").value;
    var file = document.getElementById("eimage");
    console.log(file);

    file.addEventListener('change', function(evt) {
      let imageFile = evt.target.files[0] // upload the first file only
      let uploadTask = imagesRef.put(imageFile)
  })



    /*var file = storageRef.child(file.name);
    ref.put(file).then(function(snapshot) {
         alert("File Uploaded")
         console.log('Uploaded a blob or file!');
      });*/


    db.collection("Exercises").add({
        Name: exerciseName,
        bodyPart: exercisePart,
        Level: exerciseLevel,
        //image: file

    })
    .then(function(){
        console.log("Data entered successfully!");
    })
    .catch(function(error){
        console.error("Error!", error);
    });
}

我的 html 页面中的 Firebase 初始化:

<!--Firebase-->
            <script src="https://www.gstatic.com/firebasejs/7.0.0/firebase-app.js"></script>
            <script src="https://www.gstatic.com/firebasejs/7.0.0/firebase-firestore.js"></script>

            <script>
                var firebaseConfig = {
                    apiKey: "############################",
                    authDomain: "########.firebaseapp.com",
                    databaseURL: "###########.firebaseio.com",
                    projectId: "#############",
                    storageBucket: "gs://##########.appspot.com",
                    messagingSenderId: "##############",
                    appId: "###############################"
                  };
                // Initialize Firebase
                firebase.initializeApp(firebaseConfig);
            </script>
            <script src="app.js"></script>
        <!--/Firebase-->

已解决:

在我的 html 中添加了以下行。

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

最佳答案

在您的 Firebase 控制台中,您是否添加了存储服务并重新生成了初始化代码以放入 HTML 中?我看到您添加了 firebase-app.jsfirebase-firestore.js 脚本,但您似乎没有用于存储的脚本。也许添加该服务并将相关脚本添加到 HTML 中可以解决该问题。

编辑: 添加 firebase-storage.js 将解决该问题:

console.log(firebase.storage);
<script src="https://www.gstatic.com/firebasejs/7.0.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.0.0/firebase-storage.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.0.0/firebase-firestore.js"></script>

关于javascript - 未捕获的 TypeError : firebase. 存储不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58168280/

相关文章:

javascript - 在 ajax post issue 中传递数据

javascript - AngularJS 禁用 2 路绑定(bind)

html - 移动版 Safari 中 block 元素垂直居中的问题

javascript - 键必须是非空字符串,不能包含 "."、 "#"、 "$"、 "/"、 "["或 "]"

javascript - 仅从 Firebase(网络)的节点检索一些参数?

javascript - 如何按降序对 JSON 数组元素进行排序?

javascript - 将编辑和删除选项推到最右侧可能吗?

javascript - iframe被屏幕切了一半

java - 我可以在java applet loader消失之前加载图像吗?

android - 应用程序在某些设备上崩溃,因为 "Default FirebaseApp is not initialized in this process"