我想先获取用户的open_id,然后判断数据库中,是否含有open_id,有则不操作,没有则添加到数据库。
开发版和体验版都没有问题,就是正式版,新用户无法把open_id添加到数据库。
这是我的代码
let that = this;
// 调用云函数,判断是否注册
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
console.log('open_id', res.result.openid)
//查询open_id是否在数据库中
const db = wx.cloud.database()
db.collection('user').
where({
open_id: res.result.openid
}).
get({
success: function (res) {
// 判断是否注册,如未注册,自动注册赠送票数
if (res.data.length == 0) {
console.log('正常调用云函数')
wx.cloud.callFunction({
name: 'databaseadd',
data: {},
success: res => {
console.log('查询到数据为', res.result)
},
err: res => {}
})
} else {
console.log('已是老会员')
var yesvotes = res.data[0].votes
console.log('已是老会员', yesvotes)
that.setData({
yesvotes: yesvotes, //获取数据数组
});
}
},
fail: err => {
console.log(err);
}
})
},
fail: err => {
console.log(err);
return err
}
})
云函数是这样写的
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const_ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return db.collection('user').add({
data: {
open_id: wxContext.OPENID,
votes: 100
},
success: res => {
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
})
}
权限加了,这个应该和权限没关系吧
你们是按行数算工资?
为什么不用 async await 调用?
是同一部手机吗?
还有人遇到过没