首页 > 解决方案 > Firebase 存储错误 - 不是函数

问题描述

使用html/JS,我正在尝试编写文件。

我在html头上包括了这个:

 <head>
          <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-app.js"></script>
          <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-firestore.js"></script>

然后在最后body我有:

//...
  <script src="javascripts/main.js"></script>

     <script>
              var config = {
                apiKey: "xxx",
                authDomain: "xxxx.firebaseapp.com",
                databaseURL: "https://xxxx.firebaseio.com",
                projectId: "xxxx",
                storageBucket: "xxxx.appspot.com",
                messagingSenderId: "xxxxx"
              };
              firebase.initializeApp(config);
              const db = firebase.firestore();
              db.settings({timestampsInSnapshots:true});
         </script>

然后在main.js我尝试写入 storgae 时在文件上:

   var storageRef = firebase.storage().storage.ref()('me/' + file.name);
           var task=storageRef.put(file);
            task.on('state_changed',
                    function progress(snapshot){console.log(snapshot.bytesTransferred)},
                    function error(err){},
                    function complete(){});

我在控制台上收到此错误:

firebase.storage is not a function

编辑:

Tried again and got same error with :

        // Create a root reference
        var storageRef = firebase.storage().ref();
        // Create a reference to 'images/mountains.jpg'
        var finalRef = storageRef.child('me/' + file.name);  


                  finalRef.put(file).then(function(snapshot){
                      console.log('uploading');
                  }); 

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


你还需要添加这个:

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

能够使用firebase存储api。

也改变这个:

   var storageRef = firebase.storage().storage.ref()('me/' + file.name);

进入这个:

   var storageRef = firebase.storage().ref('me/' + file.name);

检查此以获取更多信息:

https://firebase.google.com/docs/storage/web/create-reference


推荐阅读