遇到的问题: 想使用小程序云开发实时推送数据的能力在云函数中完成数据库更新,在客户端中无法监听
出现原因: 数据的更新要放到客户端完成,才能够被监听,放在云函数中,不会被监听
问题代码:
云函数中更新不可:
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
await db.collection('messages').add({
data: {
groupId: 'message',
}
});
}
解决方案:
methods: {
async like(e) {
const doc = {
_id: `${Math.random()}_${Date.now()}`,
groupId: 'message',
sendTime: new Date(),
sendTimeTS: Date.now(), // fallback
}
const db = wx.cloud.database()
await db.collection('messages').add({
data: doc,
})
}
}