收藏
回答

多账号和真机调试,返回数据库里没有的数据?

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wx8fd43b7ee9e0143b cloud1-0gifvadf3bb62bbf 2.24.0

这里是想实现聊天功能,所以有一个ChatOnline集合来保存用户是否在线

ChatOnline集合里只有一条数据,user1是1813100并且user2是18121300的数据

当我用开发工具登录18131000的账号,用多账号测试或者真机登录18121300账号的时候,18131000退出时返回正常,但18121300用户退出时数据库查询函数查出的数据如图,和实际数据库的内容不符

onUnload: function () {
        var that = this
        const uid = wx.getStorageSync('uid')
        const info = wx.getStorageSync('info')
        db.collection('ChatOnline'//更新自己的在线状态
        .where(db.command.or([
            {
                user1:info.id,
                user2:uid,
            },
            {
                user1:uid,
                user2:info.id
            },
          ]))
        .get()
        .then(res=>{
                console.log(res.data)    //这里返回的数据错误
                if(res.data[0].user1=info.id)
                {
                    console.log("use1")
                db.collection('ChatOnline'//更新自己的状态
                .where({
                    user1:info.id,
                    user2:uid
                }).update({
                    data:{
                        user1online:false  
                    }
                }).then(res=>{
                    console.log('退出')
                })
            }
            else{
                console.log("use2")
                db.collection('ChatOnline'//更新自己的状态
                .where({
                    user2:info.id,
                    user1:uid
                }).update({
                    data:{
                        user2online:false  
                    }
                }).then(res=>{
                    console.log('退出')
                })
            }
        })
}

回答关注问题邀请回答
收藏
登录 后发表内容