先获取个人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
});
}
},
})