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

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


我正在尝试从图像中清除数据库,这些图像仍然独立且未绑定到数据库中的任何数据。它实际上效果很好,但有时会出现一些问题。


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


不应删除该图像,但仍应将其删除。为什么?


翻翻过去那场雪
浏览 113回答 1
1回答

海绵宝宝撒

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

相关分类

JavaScript