【问题标题】:The image should not be deleted but it is, why?图像不应该被删除,但它是,为什么?
【发布时间】:2020-08-23 04:32:12
【问题描述】:
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

我正在尝试从单独存在且未绑定到数据库中任何数据的图像中清除数据库。它实际上运行良好,但有时会出现问题。

图像被连续评估两次,生成两个不同且相反的连续日志,循环中肯定有错误导致图像首先被评估为不被删除,然后被删除,而实际上它不应该被评估两次,数据库是好的,他们确定不应该删除图像,因为绑定它的数据存在于数据库中。

图像不应被删除,但仍会被删除。为什么?

【问题讨论】:

  • 在 Stack Overflow 上,请不要显示文字图片。将文本复制到问题本身中,以便于阅读、复制和搜索。
  • 我无法弄清楚是什么不符合您的预期。请更新问题,以更具体地说明文件在不应该被删除的情况下被删除。鉴于您在问题中提供的内容,我们应该能够重现这种情况。
  • 问题更新现在可以了吗?

标签: javascript firebase firebase-realtime-database google-cloud-functions firebase-storage


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多