收藏
回答

体验者使用小程序时其用户信息无法录入云数据库

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 微信安卓客户端 wx600dcc7f7f02c3ba yingyingying-7gw8jn4452265e97 2.15.0

做了一个用户信息的录入与更新,通过openid检验数据库里是否存在用户信息,没有就新增通过db.collection('UserInfo').add添加信息,有就通过db.collection('UserInfo').where(_openid).updata更新相应的用户数据。在我自己测试的时候添加和更新都进行的很顺利,可是给体验者试用时,数据库就是没有他们作为用户的信息,把数据库权限更改重试也没有用

回答关注问题邀请回答
收藏

2 个回答

  • Mr.Zhao
    Mr.Zhao
    2021-03-01

    问题出在这,跟云开发没关系。如果想获取openid,用云函数获取吧

    2021-03-01
    有用 2
    回复 5
    • Paris
      Paris
      2021-03-01
      哦哦!真的有用哎!原来把wx.request删了就没事了,谢谢老师!真的非常感谢!
      2021-03-01
      回复
    • 史琨
      史琨
      04-27
      这个怎么改的呀,没有看懂
      04-27
      回复
    • Mr.Zhao
      Mr.Zhao
      04-27回复史琨
      别在小程序端调用就行了
      04-27
      回复
    • 史琨
      史琨
      04-27
      那我怎么获取用户openid呢?
      04-27
      回复
    • Mr.Zhao
      Mr.Zhao
      04-27回复史琨
      放服务端调用啊
      04-27
      回复
  • 张老师
    张老师
    2021-02-28
    贴示例代码。
    2021-02-28
    有用 1
    回复 1
    • Paris
      Paris
      2021-02-28
      麻烦老师了
      userLogin:function(name,photo){
        var That = this;
        wx.login({
          success: res => {
            wx.request({
              url: 'https://api.weixin.qq.com/sns/jscode2session',
              data:{code:res.code,name:name,photo:photo},
              success: res => {
                console.log('res',res)
                app.globalData.userInfo=wx.getStorageSync('userInfo')
                console.log('app.userInfo',app.globalData.userInfo)
                //调用云函数获取openid
                wx.cloud.callFunction({
                  name:"login",
                  success(res){
                    wx.setStorageSync('openid', res.result.openid)
                  }
                }),
                //使用openid判断是否已经注册过
                db.collection('UserInfo').where({
                  _openid: wx.getStorageSync('openid')
                }).get({
                  success(res){
                    if(res.data.length > 0){
                      That.setData({
                        hasRegistered: true //将hasRegistered更新为true
                      })
                    }
                //已注册,更新用户信息;没注册,新增用户
                if(That.data.hasRegistered){
                  That.updateUser()
                }else{
                  That.addUser()
                }
                  }
                })
              }
            })
          }
        })
      },
        //新增用户,并将hasReigstered设置为true
        addUser(){
          let that = this
          db.collection('UserInfo').add({
            data:{
              name: wx.getStorageSync('userInfo').nickName,
              gender: wx.getStorageSync('userInfo').gender,
              city: wx.getStorageSync('userInfo').city,
              province: wx.getStorageSync('userInfo').province,
              country: wx.getStorageSync('userInfo').country,
              avatarUrl: wx.getStorageSync('userInfo').avatarUrl,
              lat:app.globalData.lat,
              lon:app.globalData.lon
            },
            success(res){
              that.setData({
                hasRegistered: true
              })
              console.log("新增用户成功",res)
              //获取该用户数据的_id
              db.collection('UserInfo').where({
                _openid: wx.getStorageSync('openid')
              }).get({
                success:res=>{
                  app.globalData.counterID=res.data[0]._id
                }
              })
            }
          })
        },
        //更新用户数据
        updateUser(){
          db.collection('UserInfo').where({
            _openid: wx.getStorageSync('openid')
          }).update({
            data:{
              name: wx.getStorageSync('userInfo').nickName,
              gender: wx.getStorageSync('userInfo').gender,
              city: wx.getStorageSync('userInfo').city,
              province: wx.getStorageSync('userInfo').province,
              country: wx.getStorageSync('userInfo').country,
              avatarUrl: wx.getStorageSync('userInfo').avatarUrl,
              lat:app.globalData.lat,
              lon:app.globalData.lon
            },
            success(res){
              console.log("更新用户信息成功",res)
              //获取该用户数据的_id
              db.collection('UserInfo').where({
                _openid: wx.getStorageSync('openid')
              }).get({
                success:res=>{
                  app.globalData.counterID=res.data[0]._id
                }
              })
            }
          })
        },
      2021-02-28
      回复
登录 后发表内容
问题标签