我正在使用flutter开发一个移动应用程序,以便从学生那里获得关于老师的反馈。我有4个问题,每个问题有4个选项。我正在存储每个问题的每个选项的票数。当任何老师在我们的应用程序中注册时,我们将所有计数设置为零。
'feedback':{
'1' : [0,0,0,0],
'2' : [0,0,0,0],
'3' : [0,0,0,0],
'4' : [0,0,0,0],
}
现在,当任何学生对任何老师给出反馈时,学生选择的选项数将增加一。(示例:与Instagram显示故事中任何问题的每个选项的投票方式相同。(
我正在使用cloud函数来增加值,但我被卡住了,我不知道如何处理我的情况。
例如:学生X为问题选择的选项是-1:3、2:1、3:2、4:4我知道我必须增加哪个索引计数,但指导我如何做到这一点。
exports.feedback = function.https.onCall((data,context) => {
const teacher = admin.firestore().collection('users').doc(data.tID);
const student = admin.firestore().collection('users').doc(data.sID);
return teacher.get().then(doc => {
const batch = admin.firestore().batch();
//help me on this line
batch.set(teacher,{feedback : '1':[,,admin.firestore.FieldValue.increment(1),,]}).
});
});
如果您想修改文档中数组的值,您必须:
- 阅读文档
- 将内存中的数组修改为所需的方式
- 将数组写回文档
您现在使用FieldValue.increment()
的方式无法作为数组中的项使用。