如果因为微信云开发的bug造成的损失,可以索赔吗?
发布于 6 年前 作者 nalong 14983 次浏览 来自 问答

一个云开发的严重bug,doc.update接口,当doc(_id)中的_id被之前delete掉时,会将表中的本人的doc全部update掉了,无法恢复,这种情况可以向微信索赔吗?还是线上版本,本人的doc只能全部删除。

用以下代码我多次复现验证这个bug:(大家可以复制下来直接运行验证)


  onLoad: function (options) {


    //第一步开始添加两条doc

    const db = wx.cloud.database()

    db.collection('test').doc('123456').set({ data: { a: 1, b: 2, } })

    db.collection('test').doc('1234567').set({ data: { a: 3, b: 4, } })


    //第二步增加运行以下代码后。(记得注释掉第三步的代码)

    let doc = {_id: '12345678',a:5}

    db.collection('test').doc(doc._id).update({ data: doc })//本句出错,带_id无法更新


    //第三步注释掉第二步的代码,运行以下代码

    //之所以写第二步,是说明第三步出现的原因,我想不管谁碰到第二步出错,一定是马上改成第三步来运行。

    let doc = {_id: '123456789',a: 7}

    delete doc._id //增加了这一行

    // console.log(doc_id) 无法log出来,会出错,但是不影响下面代码的执行。

    db.collection('test').doc(doc._id).update({ data: doc }).then(res => {

      console.log(res)

    })

  },

在小程序端运行doc.update,理论上无论怎么操作(就算代码写错),都不应该能批量修改表中所有的doc。

这种bug造成了很严重的损失,可以索赔吗?

验证过程中,如果注释掉第二步,不停地运行这些代码,发现第三步运行的结果很诡异,有时更新一条,有时全部更新。(这样更说明这是bug了)

2 回复

感谢反馈,不好意思给你带来麻烦了,从 2.7.4 起不会允许 .doc 传入空值

你有把握能赢南山必胜客?

回到顶部