我正在运行Firebase,在实时数据库中,我保存了我想要加载的当前文件的文件名。然后我使用Cloud功能创建缩略图。当我更改文件时,我正在尝试创建一个云功能来删除缩略图?这是我目前拥有的,我能够加载完整的路径。 object
无法用于加载广告资源。
exports.deleteThumbnails = functions.database.ref('/users/{userId}/avatar').onUpdate(event => {
const prevAvatar = event.data.previous.val();
const filePath = `${event.params.userId}/avatar/40_${prevAvatar}`;
console.log(`FilePath: ${filePath}`);
// const bucket = gcs.bucket(object.bucket);
// const file = bucket.file(filePath);
// const pr = file.delete();
return event;
});
答案 0 :(得分:3)
如果您的完整路径是将文件存储在firebase存储中的位置,则以下代码应该有所帮助:
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: "<BUCKET_NAME>.appspot.com"
});
var bucket = admin.storage().bucket();
exports.deleteThumbnails = functions.database.ref('/users/{userId}/avatar').onUpdate(event => {
const prevAvatar = event.data.previous.val();
const filePath = `${event.params.userId}/avatar/40_${prevAvatar}`;
console.log(`FilePath: ${filePath}`);
return bucket.file(filePath)
.delete()
.then(() => {
console.log(`file deleted.`);
})
.catch(err => {
console.error('ERROR:', err);
});
});
要了解该文件的所有操作,请执行以下操作:Google cloud storage Uploading, Downloading, and Deleting Objects并访问Firebase storage for admin sdk以了解admin sdk如何使用存储,请按照以下步骤操作: