exports.onWriteCancelExtraStorage = functions.database.ref("users/{userID}").onWrite((snapshot,context) => {
const dues = snapshot.after.val();
const userID = context.params.userID
const query = {
directory: userID+"/images/"
};
return admin.storage().bucket().getFiles(query,function(err, files) {
if (!err) {
return files.forEach(function(file) {
var boolIfFindend = false
if (snapshot.after.exists()) {
snapshot.after.forEach(function (childSnapshot){
const imageName = childSnapshot.key;
if (childSnapshot.child("serviceImageUrl").val() === file.name) {
console.log("Trovata l'immagine "+ file.name)
boolIfFindend = true
}
});
if (boolIfFindend === false) {
console.log("Questa immagine è da eliminare perchè non è stata trovata : "+file.name);
file.delete()
} else {
console.log("Questa immagine non è da eliminare perchè è stata trovata : "+file.name);
}}
});
} else {
console.log(err)
return 0
}
});
});
日志:
Questa想像不到èdaeliminare
紧接着
Questa想像èda eliminare
我正在尝试从图像中清除数据库,这些图像将保持独立并且不与数据库中的任何数据绑定。它实际上运作良好,但有时会出问题。
连续对图像进行两次评估,生成两个不同且相对的连续日志,周期中必须存在一个错误,该错误导致首先对图像进行评估,使其不被删除,然后被删除,实际上不应进行两次评估,数据库是可以的,并且他们确定不应删除图像,因为绑定图像的数据已存在于数据库中。
不应删除图像,但仍将其删除。为什么?
答案 0 :(得分:0)
已修复:数据库中保存了两个订阅,这意味着当第一个“ onWrite”启动时,它发现第二个订阅仍未完全加载到数据库中,并删除了第二个镜像,我通过解决文件的元数据日期(不删除文件)在不到一天前更新!