毕竟,我找到了一种使用 admin SDK 来使用 firebase 存储上传和下载文件的方法
首先,你应该安装 firebase-admin
npm install --save firebase-admin
我不记得你是否必须安装@firebase/storage
让我们来看看代码
首先你必须发起
var admin = require("firebase-admin");
var firebase = require("firebase");
var serviceAccount = require("path/to/your/private/ket.json");
私钥是从 firebaseConsole 生成的
firebaseConsole->项目设置->服务帐号->生成私钥
现在你可以使用 firebase 存储桶了
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: "{storageBucket}"
});
var bucket = admin.storage().bucket();
您可以在{上传文件}按钮旁边找到 storageBucket
现在让我们来看看如何将图片上传到我的名为 pic 的文件夹中'您可以使用它而无需创建任何子文件夹'
uploadPic (picName, Picture) => {
db.bucket.upload(Picture.path, {
destination: "pic/" + picName,
metadata: {
contentType: Picture.mimetype,
cacheControl: 'public, max-age=31536000'
}
}, (err, file) => {
if (err) {
console.log(err);
} else {
console.log('done');
}
return;
});
};
您需要将所有文件发送到此函数或图片的路径和 mimetype 有必要的信息,您还需要发送 id 所以如果您搜索它以便找到它。
此代码用于获取图片URL
let baseUrl = 'https://firebasestorage.googleapis.com/v0/b/'+'{storageBucket }'+'/o/'+'{folderName}'+'%2F';
getPicUrl (pictureName) => {
db.bucket.getFiles({ prefix: 'pic/' + pictureName}).then((file) => {
var token = file[0][0].metadata.metadata.firebaseStorageDownloadTokens;
baseUrl = baseUrl + pictureName+ '?alt=media&token=' + token;
return;
}).catch((err) => {
console.log(err.message);
});
return baseUrl;
};
此函数将返回下载 URL,您可以使用它来显示此文件或下载它
我所知道的我试图以最好的方式解释它希望你喜欢它
祝你好运:)