【微信小程序】collection.watch实现对云端数据的实时监控

 

    最近在做的小程序项目中,为了实现一个聊天功能的实时性,需要对云端储存的聊天内容进行监控。这篇博文简单的介绍一下,希望对各位朋友有所帮助。

    博文主要内容导引:

            1.介绍利用collection.watch来实现云端数据的监控过程,

            2.对于可能遇到的BUG(db.collection(...).where(...).watch is not a function)提出解决方法。

一、利用collection.watch来实现云端数据的监控

    参考文档:collection.watch介绍文档  And  实时数据推送

    首先说明一下,本文中介绍的watch是监控云端数据库中的数据,并不是对小程序.js文件中的data数据进行监控的。

    下面就是watch的具体使用方法了。在需要实现监控逻辑的.js文件(例如chat.js)中的onLoad函数中添加如下代码:

  // 生命周期函数--监听页面加载
  onLoad: function (options) {
    const db = wx.cloud.database()
    db.collection('Messages').where({
      name: '老王' //这里通过名字找到Messages数据集合中叫“老王”的那一条数据,也即为要监控的数据
    }).watch({
      onChange: function (snapshot) {
        //监控数据发生变化时触发
        console.log('docs\'s changed events', snapshot.docChanges)
        console.log('query result snapshot after the event', snapshot.docs)
        console.log('is init data', snapshot.type === 'init')
      },
      onError:(err) => {
        console.error(err)
      }
    })
  },

    对于我要实现的聊天记录检测功能,我可以将聊天者的名字,以及聊天记录存在云端的Messages数据集合中的一个object数据中,通过上述的代码,我通过筛选名叫“老王”的聊天者,从而定位了这个object数据,再通过watch方法检测这个数据的变化。

    当云端的这个object数据发生变化时,也即和老王聊天的人给老王发送了一条消息,这条消息存在了object数据中,此时watch的OnChange函数会被触发,函数会返回sanpshot参数,此参数中会包含变化后的object数据的内容,由此可以更新老王这一端的聊天数据,从而实现实时对话功能。

二、BUG(db.collection(...).where(...).watch is not a function)的解决

    当你直接把上面的代码粘贴到你的程序中,可能会出现如下的错误。

BUG

此时并不是因为代码的逻辑问题,而是collection.watch的使用对于基础的版本是有要求的,是2.8.1。

基础库要求

    在微信开发者工具中进行修改就可以了。修改的方法:设置→项目设置→本地设置→调试基础库,选择2.8.1及其以上的版本即可。

设置

    别忘了在微信公众平台也要修改最低基础库版本要求,这样你的小程序使用者在手机上才能正常调用watch。

公众平台设置

 

这里是童小喵,趟大家没趟的坑,写大家都爱看的文。欢迎点赞支持~喵~

 

  • 12
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 微信小程序模版合集下载包含了160个微信小程序源码.zip和35个行业-微信小程序源码.zip。这些模板可以帮助开发者快速开发小程序,省去不必要的时间和精力。 在160个微信小程序源码.zip中,包含了各种类型的小程序模板,比如美食、酒店、外卖、婚礼、房产、教育等,开发者可以根据自己的需求选择合适的模板进行二次开发。这些模板已经包含了基本的功能和页面,例如登录、注册、商品展示、订单管理等,开发者只需要将自己的数据和逻辑接入即可。 35个行业-微信小程序源码.zip则是更加针对性的模板,专门为某些行业或者特定领域设计的小程序模板。比如医院、汽车、健身、商城等,这些模板已经适配了相应行业的需求和特点,包含了更多的功能和页面,可以直接拿来使用或者进行修改。 总之,微信小程序模版合集下载是非常有用且方便的资源。对于小程序开发者来说,这些模板可以节省很多时间和精力,让开发更加高效和轻松。同时,这些模板也可以作为学习的参考,对初学者有很大的帮助。 ### 回答2: 微信小程序已成为越来越多企业和个人的选择,为这些用户提供方便、实用的微信小程序源码,能大大缩短开发时间,降低开发成本。本次提供的微信小程序模版合集下载包含 160 个微信小程序源码,涵盖多种类型的小程序,包括商城、社交、新闻资讯、工具等等。另外,35 个行业-微信小程序源码.zip 包含各类小程序,针对不同的行业开发,如美食、旅游、教育等等。这些小程序源码具有良好的交互性、个性化定制功能、良好的用户体验,且可快速部署上线,极大地提高了开发效率和部署速度。如果您正在开发微信小程序,那么这些源码就是不可多得的帮手,它将为您尽可能地节省时间和精力。同时,这些源码支持二次开发和定制,您可根据自己的需求进行修改和扩展,并快速上线。如果您有任何问题和需求,可以随时联系我们,我们将为您提供实时帮助和技术支持。 ### 回答3: 微信小程序模版合集下载是一种非常方便的服务,它能够方便用户下载不同种类的微信小程序模版。本次提供的微信小程序模版合集包括160个微信小程序源码和35个行业-微信小程序源码。这些源码涵盖了不同行业的微信小程序,用户可以根据自己的需求选择相应的模版并进行定制。 160个微信小程序源码.zip中包括了各类微信小程序,比如电商、社交、餐饮、教育、医疗等,这些模版的设计风格及功能设置均有所不同,用户可以根据自己的需求选择相应的模版并进行二次开发。 35个行业-微信小程序源码.zip中包含了不同行业的微信小程序,比如旅游、汽车、电子商务、婚庆、美容等,这些模版中所包含的信息、功能及呈现方式都是与其所在行业相关的,可以让用户更好地进行定制和二次开发。 总之,微信小程序模版合集下载为微信小程序的开发提供了便利,开发者可以根据自己的需求选择相应的模版并进行二次开发,从而快速构建微信小程序。同时,这些模版也为其他用户提供了更为丰富的微信小程序,能够更好地满足用户的需求。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值