未捕获的错误:Firebase选项中未定义存储存储桶。 (WEB)

时间:2017-08-06 16:59:37

标签: javascript firebase firebase-storage

我尝试在firebase存储上传文件(图片)。但是它控制了一个错误,说明"未捕获的错误:Firebase选项中没有定义存储桶。" 。这是我的代码

const fileUpBtn = document.getElementById('photoUpload');
const selectFile = document.getElementById('selectedFile');
const postIt = document.getElementById('postIt');

fileUpBtn.addEventListener('click',function(){
selectFile.click();
}
);
selectFile.addEventListener('change',function(e){

var file=e.target.files[0];
var filename = file.name;
console.log('/postPic/'+filename);
var storeLocation = storage.ref('/postPic/'+filename);
var uploadTask=storeLocation.put(file);  
});

我试过允许任何用户存储,但这种情况也可以解决这个错误。

enter image description here

2 个答案:

答案 0 :(得分:21)

很可能是" storageBucket" Firebase配置中的选项是空字符串。它似乎默认为空字符串,除非"存储"已在控制台界面初始化。

转到firebase控制台,初始化"存储"通过在Firebase控制台界面上访问它,然后复制" storageBucket"的新值。从firebase配置到你的应用程序。

你的firebase配置应该是这样的。

{
  apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  authDomain: "my-app-a123z.firebaseapp.com",
  databaseURL: "https://my-app-a123z.firebaseio.com",
  projectId: "my-app-a123z",
  storageBucket: "my-app-a123z.appspot.com",
  messagingSenderId: "123456789012"
};

答案 1 :(得分:1)

如果您在角度问题上遇到此问题。您必须在enviroment.prod.ts上指定storageBucket链接。由于部署项目时,它将使用生产变量和文件。

export const environment = {
 production: true,
  firebaseConfig : {
    apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    authDomain: "your-app_name.firebaseapp.com",
    databaseURL: "https://your-app_name.firebaseio.com",
    projectId: "your-app_name",
    storageBucket: "gs://your-app_name.appspot.com/", //REMEMBER TO ADD IT HERE
    messagingSenderId: "604005378047",
    appId: "1:604005378047:web:ab0cdef3gh123456"
}};