说现象
前两天有客服消息说我的小程序无法进行正常功能的使用了,后来定位到问题了,在 update 的时候出现错误信息:data exceed max size。
并且这个错误还开发工具上不出现,只有在手机上才出现。原因是 update 的字段内容太大了导致无法正常修改,那么我们要做的就是让参数变小。
分析问题
这个小程序是实现的是投票功能,有多层嵌套,之前的更新方案是直接修改 optionData 里面的所有内容。
数据结构解释:
optionData 是一个数组里面存储选项数据
optionData 下面还有一个joiner数据组,这个是存放用户投票信息的。
optionData内容过大导致报错,解决方案是通过只更新局部来解决。
上代码
没改之前的代码
let vote = await db.collection('activity').doc(event.id).update({
data:{
optionData:event.optionData
}
})
优化后的代码
let vote = await db.collecti