先获取个人OpenId,数据库比较,如果有直接渲染,没有去授权,

2020-03-11  本文已影响0人  随风飞2019

封装的写法,进来页面
先去获取这个人的OpenId
然后去数据库比较,如果有直接渲染
如果没有,出现授权按钮,让用户去授权
授权后,把数据存入数据库

第一次用户必须手动点击button,获取用户授权
<van-button type="primary" bindgetuserinfo="getuserinfo" open-type="getUserInfo">获取用户基本信息</van-button>
需要设置bindgetuserinfo="getuserinfo" open-type="getUserInfo"这两个参数
其中bindgetuserinfo="getuserinfo"是用户执行的方法

const db = wx.cloud.database();
const usersCOL = db.collection("users");
Page({
  data: {
    allShowFlag:false,
    userInfo:{
      avatarUrl: "https://b.yzcdn.cn/vant/icon-demo-1126.png"
    },
  },
  async getUserOpenId(){
    let { result } = await wx.cloud.callFunction({
      name: "getUserOpenId"
    });
    return result;
  },
  async getAllUsers(){
    let { data } = await usersCOL.where({}).get();
    return data;
  },
  async getuserinfo(e){
    //把数据存入数据库
    await usersCOL.add({
      data: e.detail.userInfo
    });

    //渲染数据
    this.setData({
      userInfo: e.detail.userInfo,
      allShowFlag: true
    });
  },

  async onLoad(options) {
    let data = await this.getAllUsers();
    let result = await this.getUserOpenId();

    console.log(result, data);
    let temp = data.filter(item=>{
      return item._openid == result.OPENID
    });
    if(temp.length){
      this.setData({
        userInfo:temp[0],
        allShowFlag:true
      });
    }
  },
})
上一篇下一篇

猜你喜欢

热点阅读