想设计的内容是,根据openid返回数据库用户列表集合中对应的一条信息
但是实际返回了全部的。
自己排查的时候
在let _openid = res.result.openid后面追加了console.log("userid",_openid)之后只显示有我的openid
但是下面db.collection.where.get还是返回了云数据库全部的内容(每条openid都不一样)
试着把where里面的openid:this.data._openid改成具体的一个id就可以返回那个openid的那条内容
应该是this.data._openid 出了问题但我是小白不会改
有大大能帮我看一下吗
// pages/mypage/mypage.js
const app = getApp()
// 设置数据库
const db = wx.cloud.database()
let that = this
Page({
/**
* 页面的初始数据
*/
data: {
user_info:[],
queryResultname: '',
queryResultsex: '',
queryResultbirthday: '',
queryResultposition: '',
queryResultintro: '',
queryResulttel: '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
// 从云端获取个人信息
wx.cloud.callFunction({
name: "getopenid",
success(res){
// 授权用户的openid
let _openid = res.result.openid
}
})
// 查询当前用户所有的 counters
db.collection('user_info').where({
openid: this.data._openid
})
.get({
success: res => {
this.setData({
queryResultname: JSON.stringify(res.data[0].name, null, 0).replace("\"","").replace("\"",""),
queryResultsex: JSON.stringify(res.data[0].sex, null, 0).replace("\"","").replace("\"",""),
queryResultbirthday: JSON.stringify(res.data[0].birthday, null, 0).replace("\"","").replace("\"",""),
queryResultposition: JSON.stringify(res.data[0].position, null, 0).replace("\"","").replace("\"",""),
queryResultintro: JSON.stringify(res.data[0].intro, null, 0).replace("\"","").replace("\"",""),
queryResulttel: JSON.stringify(res.data[0].tel, null, 0).replace("\"","").replace("\"",""),
})
console.log('[数据库] [查询记录] 成功: ', res)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
})
console.error('[数据库] [查询记录] 失败:', err)
}
})
},
[抠鼻] 数据库表权限设置成仅创建者可读不就行了吗。。。
// 获取用户的openid var that = this; wx.cloud.callFunction({ name: 'login_get_openid', // 云函数 }).then(res=>{ console.log("云函数调用成功!",res) //抓取数据 that.setData({ openid:res.result.openid }) //将数据缓存到本地 wx.setStorage({ data:that.data.openid, key:'openid' }) // let opid=wx.getStorageSync('openid') console.log(opid) } ) const _ = db.command db.collection('login_info').where({ _openid:wx.getStorageSync('openid') }) .get({ success: res => {
在db.collection('user_info').where 之前console.log一下this.data._openid 目测为空。
"openid为空" 是不是由于这条记录,是由当前用户创建的?或者这条记录是在云平台创建的原因呀?
要不,新建个开发管理员账户?切换其他管理账户,查看非自己openid 的记录?
^_^;这可能是个馊主意,哈哈!
同问,openid为空,怎么解决?