我希望在firebase项目中创建多个用户存储桶 . 据我所知,通过前端Web应用程序,我无法创建存储桶,因此我有一个HTTPS API,可以在firebase中的项目ID中创建一个存储桶 .
当我尝试获取引用并在存储桶中创建文件夹结构以在Web应用程序中上传文件时,我在chrome控制台中收到存储/未知错误...就像我运行POST命令一样
{
"error": {
"code": 404,
"message": "Not Found. Could not access bucket
gs://h4yrch<edited for privacy>q2_1"
} .
}
我的逻辑 - >在用户在web应用中使用firebase auth进行身份验证时,调用HTTPS API在项目中创建存储桶 .
console.log('Creating New Bucket');
bucketName = uid.toLowerCase()+'_1';
// Creates the new bucket
storage
.createBucket(bucketName)
.then(() => {
console.log(`Bucket ${bucketName} created for the user`);
helper.success(res,'Created');
})
.catch(err => {
console.error('ERROR:', err);
helper.failure(res,err,401);
});
然后在Web应用程序中检索存储并放置用户希望上传的文件 .
var userBucket = 'gs://'+this.user.uid.toLowerCase()+'_1';
//get file
var file = e.target.files[0];
var storage = firebase.app().storage(userBucket);
console.log('storage object ='+storage);
//upload file
var storageRef = storage.ref().child('transaction_images/'+file.name);
var task = storageRef.put(file);
希望将文件放在用户存储桶中的transactions_images文件夹中 . 我正在使用Polymer 2.0并使用初始化firebase应用程序
<firebase-app
auth-domain="[[configFirebase.authDomain]]"
database-url="[[configFirebase.databaseURL]]"
api-key="[[configFirebase.apiKey]]"
storage-bucket="[[configFirebase.storageBucket]]"
messaging-sender-id="[[configFirebase.messagingSenderId]]">
</firebase-app>
在Web应用程序页面中,我尝试更改firebase存储,但似乎不起作用 .
我花了一天时间尝试多种方法 . 非常感谢您的帮助 .
或者,我可以使用默认存储并创建每个用户文件夹来存储文件 . 我不确定桶的最大尺寸是多少 .
附加信息:我使用npm package @ google-cloud / storage创建了存储桶 . 我可以在Google Cloud Console中查看该存储桶,但不能在Firebase控制台中看到该存储桶 .
谢谢