0

這是我第一次嘗試用火力地堡的存儲工作,我繼火力地堡提供本教程:錯誤雖然正與火力地堡存儲

https://www.youtube.com/watch?v=SpxHVrpfGgU

我似乎按照教程採取逐步一步,但是,我發現了以下錯誤,我無法找到它的一個解決方案:

firebase-storage.js:3469 Uncaught Error: No Storage Bucket defined in Firebase Options. 
    at t.ref (firebase-storage.js:3469) 
    at HTMLInputElement.<anonymous> (myFile.js:18) 

當我點擊「t.ref」它使我以下陷阱:

catch(error) { 
    throw new Error(
     'Cannot instantiate firebase-storage.js - ' + 
     'be sure to load firebase-app.js first.' 
) 

這裏是我的HTML:

<!doctype html> 

<html lang="en"> 

<head> 
    <title>...</title> 
    <link rel="stylesheet" type="text/css" href="stylesheets.css" /> 

    <meta charset="UTF-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <script src="https://www.gstatic.com/firebasejs/4.1.5/firebase.js"></script> 
    <script> 
     // Initialize Firebase 
     var config = { 
      apiKey: "...", 
      authDomain: "...", 
      databaseURL: "...", 
      projectId: "...", 
      storageBucket: "", 
      messagingSenderId: "..." 
     }; 
     firebase.initializeApp(config); 
    </script> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

</head> 

<body> 
    <nav>...</nav> 

    <progress value="0" max="100" id="uploader" style="margin-top: 35px;">0%</progress> 
    <input type="file" value="uploader" id="fileButton" /> 

    <script src="myFile.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

</body> 

</html> 

而我相應的JavaScript:

// Get elements 
var uploader = document.getElementById('uploader'); 
var fileButton = document.getElementById('fileButton'); 

// Listen for file selection 
fileButton.addEventListener('change', function(e) { 
    // Get file 
    var file = e.target.files[0]; 

    // Create a storage reference 
    var storageRef = firebase.storage().ref('mover_docs/' + file.name); 

    // Upload a file 
    var task = storage.put(file); 

    // Update progress bar 
    task.on('state_changed', 

     function progress(snapshot) { 
      var percentage = (snapshot.bytesTransferred/snapshot.totalBytes) * 100; 
      uploader.value = percentage; 
     }, 

     function error(err) { 

     }, 

     function complete() { 

     } 
    ); 
}); 

我想我的主要問題是,發生這種錯誤,因爲初始化火力地堡的區域內發現了storageBucket有空值還是缺少別的東西?

+0

我注意到我在初始化中缺少必要的存儲桶位置,但我試圖找出正確的路徑,因爲我現在正在收到404錯誤。 {code:404,message:「Not Found。Could not access bucket Buckets/your-storage」} – mur7ay

回答

0

需要完成的工作是將您的Firebase上的「存儲」標籤中的鏈接複製到空白文件上方。它看起來類似於這樣:

GS://projectName-ci4w0.appspot.com/

現在,只是刪除了GS://後.COM最後的斜槓。將這種新形成的鏈接進入火力地堡規則部分用於儲存像這樣:

match /b/projectName-ci4w0.appspot.com/o { 

最後,地方火力地堡的初始化部分中的相同的新鏈接在你的代碼如下所示:

<script> 
    var config = { 
    apiKey: "...", 
    authDomain: "...", 
    databaseURL: "...", 
    projectId: "...", 
    storageBucket: "projectName-ci4w0.appspot.com", 
    messagingSenderId: "..." 
}; 
firebase.initializeApp(config); 
</script> 

這它!