为了账号安全,请及时绑定邮箱和手机立即绑定

图像不应该被删除,但它是,为什么?

图像不应该被删除,但它是,为什么?

翻翻过去那场雪 2022-08-04 16:58:15
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 immagine non è da eliminare紧接着Questa immagine è da eliminare我正在尝试从图像中清除数据库,这些图像仍然独立且未绑定到数据库中的任何数据。它实际上效果很好,但有时会出现一些问题。图像被连续评估两次,生成两个不同且相反的连续日志,循环中必须存在一个错误,导致首先评估图像为不被删除,然后作为删除,而实际上它不应该被评估两次,数据库是好的,他们确保不应该删除图像,因为绑定它的数据存在于数据库中。不应删除该图像,但仍应将其删除。为什么?
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

修复:数据库中保存了两个订阅,这意味着当第一个“onWrite”开始时,它发现第二个订阅仍未完全加载到数据库中并删除了第二个订阅的图像,我通过处理文件的元数据日期而不删除不到一天前更新的文件来解决!


查看完整回答
反对 回复 2022-08-04
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号