云函数批量更新数据后,云开发数据库实时推送失效,怎么回事?
watch后,单个数据更改数据可以监听到change,但是利用云函数批量update后,无法出发change。(只在小程序端修改一个时,可以被监听。同时更新多个,则无法被监听到) 云函数代码 exports.main = async (event, context) => {
const { roomId, params, status = 1 } = event
try {
return db.collection('clues').where({
roomId,
...params
}).update({
data: {
status
},
success: () => {
console.log('成功了')
}
})
} catch (err) {
return err
}
}
调用云函数代码 wx.cloud.callFunction({
name: "toggleLevel",
data: {
roomId,
params,
status,
}
})
监听实时数据推送代码 async getClues(roomId) {
cluesWatcher = await db.collection('clues').where({
roomId,
status: 1
}).watch({
onChange: ({
docs
}) => {
console.log('数据改变了')
this.setData({
clues: docs,
allClues: docs
})
},
onError: (err) => {
console.log(err)
}
})
}