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> 

这它!