收藏
回答

云函数批量更新数据后,云开发数据库实时推送失效,怎么回事?

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,
    status1
  }).watch({
    onChange: ({
      docs
    }) => {
      console.log('数据改变了')
      this.setData({
        clues: docs,
        allClues: docs
      })
    },
    onError(err) => {
      console.log(err)
    }
  })
}


最后一次编辑于  2023-11-03
回答关注问题邀请回答
收藏

2 个回答

  • 云间
    云间
    发表于移动端
    2023-11-02
    😭一个胳膊和你
    2023-11-02
    有用 1
    回复 1
    • 张有宽
      张有宽
      2023-11-03
      啥?
      2023-11-03
      回复
  • showms
    showms
    2023-11-02

    代码贴出来咯

    2023-11-02
    有用
    回复 1
    • 张有宽
      张有宽
      2023-11-03
      代码已贴
      2023-11-03
      回复
登录 后发表内容