Ошибка хранения Firebase - это не функция - PullRequest
0 голосов
/ 13 декабря 2018

Используя html/JS, я пытаюсь записать файл.

Я включил это в html head:

 <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 Iиметь:

//...
  <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');
                  }); 

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вы также должны добавить это:

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

, чтобы иметь возможность использовать API хранилища Firebase.

Также измените это:

   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

0 голосов
/ 13 декабря 2018

измените свою позицию в скрипте main.js следующим образом

         <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>


     //to here
     <script src="javascripts/main.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...