2017-04-20 88 views
0

我確實在firebase storage上讀過文檔,但由於某種原因,我無法使其工作。上傳文件到Firebase存儲不能正常工作

我使用的反應,我想是能夠將文件上傳到我的火力存儲,但我不斷收到錯誤

TypeError: thisRef.put(...).then is not a function 

我想我需要在這不同的眼睛。

這裏是我的功能

uploadFile = (e) => { 
e.preventDefault(); 
    var file = this.refs.filePath.files[0]; 
    var storageRef = firebase.storage().ref(); 

    //dynamically set reference to the file name 
    var thisRef = storageRef.child(file.name); 

    //put request upload file to firebase storage 
    thisRef.put(file).then(function(snapshot) { 
    console.log('Uploaded a blob or file!'); 
    }); 
} 

UPDATE

的文件上傳到火力存儲,但它一直抱怨,承諾(。然後)

這裏是文件我正在致力於GitHub

+0

該代碼看起來不錯。有什麼方法可以在jsbin中重現問題,所以我們可以看看? –

+0

我用gitHub repo更新了它,這可能有幫助嗎?文件上傳到fb存儲,但這是它抱怨的承諾 –

回答

0

你的腳本對我的環境工作正常。 嘗試

console.log(thisRef.put(file)); 

,並檢查thisRef.put(file)是承諾或沒有。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Firebase Test</title> 
    <script src="https://www.gstatic.com/firebasejs/3.8.0/firebase.js"></script> 
    <script> 
     // Initialize Firebase 
     var config = { 
      // your configs 
     }; 
     firebase.initializeApp(config); 
    </script> 
</head> 
<body> 
    <input type="file" id="file" name="datafile"> 
    <script> 
     function fileChange(ev) { 
      var target = ev.target; 
      var file = target.files[0]; 
      var storageRef = firebase.storage().ref(); 
      var thisRef = storageRef.child("public/" + file.name); 
      thisRef.put(file).then(function (snapshot) { 
       console.log('Uploaded a blob or file!'); 
      }); 
     } 
     var inputFile = document.getElementById('file'); 
     inputFile.addEventListener('change', fileChange, false); 
    </script> 
</body> 
</html>