云开发时执行用户数据update操作和insert(add)操作时的测试用例
发布于 5 年前 作者 aguo 1399 次浏览 来自 分享

在我们使用云开发时,我们经常遇到需要保存用户信息,而如何把记录保存或者使用更新用户的最后一次访问时间则是统计用户活跃性的重要依据。

   一般用户打开初次打开小程序时,需要用户授权访问用户的信息,后续则不再需要。用户授权后小程序可直接获取用户的信息。
   
   处理用户数据时一般在文件的生命周期函数中处理,个人业务需要。
   首先需要获取用户信息。
   第二步进行数据查询
   第三步根据查询的数据判定当前用户是否为初次访问用户,若是初次访问则执行插入,若不是则执行更新。
   下面直接贴出代码。注:person为用户集合名称

onReady: function() {
app.userInfoReadyCallback = res => {
app.globalData.userInfo = res.userInfo;
console.log(‘初始化页面获取用户信息’, app.globalData.userInfo);
var userInfo = res.userInfo;
var openid = app.globalData.OPENID;//设置全局参数
//进行用户数据信息处理
wx.cloud.database().collection(“person”).where({
_openid: openid, //当前用户 openid
}).get({
success: function(res) {
//返回数据进行数据更新或插入
if (res.data.length == 0) {//若无返回数据,则用户是初次访问用户
wx.cloud.database().collection(“person”).add({
data: {
avatarUrl: userInfo.avatarUrl,
city: userInfo.city,
country: userInfo.country,
gender: userInfo.gender,
language: userInfo.language,
nickName: userInfo.nickName,
province: userInfo.province,
createDate: new Date()//初次访问小程序时间
},
success: function(res) {
console.log(“保存数据成功!”,res);
},
fail: function(res) {
console.log(“保存数据失败!”,res);
}
});
} else {//若返回数据,则用户是老用户
var _id = res.data[0]._id;//获取需要更新用户数据的集合主键
console.log(“更新用户数据”, _id);
wx.cloud.database().collection(“person”).doc(_id).update({
data: {
avatarUrl: userInfo.avatarUrl,
city: userInfo.city,
country: userInfo.country,
gender: userInfo.gender,
language: userInfo.language,
nickName: userInfo.nickName,
province: userInfo.province,
lastVisitDate: new Date() //最后一次访问时间
},
success: function(res) {
console.log(“更新用户数据成功!”,res);
},
fail: function(res) {
console.log(“更新用户数据失败!”, res);
}
});
}
}
});
};
}

回到顶部