前端正常请求昵称跟头像到微信开发者工具--云开发,存到数据库只有id,没有其它参数!不知道原因!
13条回答 默认 最新
关注
🕗晚上好,题主!目前:🟢[在线]
📢参考通义千问、由郭老师整理提供!
📣今日诗号:愿我如星君如月,夜夜流光相皎洁。微信小程序云函数获取用户信息并存储到数据库的问题
您遇到的问题是,使用微信小程序云函数获取用户信息,并尝试将其存储到数据库时,只有
openid
被成功存储,而昵称和头像等其他参数丢失。这通常是由于以下原因导致的:-
未在云函数中正确获取用户信息: 确保在云函数中使用了
wx.cloud.callFunction
调用wx.getUserProfile
接口获取用户信息,而不是直接使用wx.getUserInfo
。 -
未正确传递用户信息到数据库: 确保将获取到的用户信息完整地传递给数据库插入操作。
-
数据库权限问题: 确保云函数拥有访问和写入数据库的权限。
解决方案和完整代码
以下是获取用户信息并存储到数据库的完整代码示例,包含前端和云函数部分:
前端代码 (例如 pages/index/index.js):
Page({ getUserInfo() { wx.getUserProfile({ desc: '用于完善会员资料', // 声明获取用户个人信息后的用途 success: (res) => { const userInfo = res.userInfo wx.cloud.callFunction({ name: 'saveUserInfo', data: { userInfo: userInfo, }, success: (res) => { console.log('用户信息存储成功:', res) }, fail: (err) => { console.error('用户信息存储失败:', err) }, }) }, fail: (err) => { console.error('获取用户信息失败:', err) }, }) }, })
云函数代码 (例如 cloudfunctions/saveUserInfo/index.js):
const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() exports.main = async (event, context) => { try { const userInfo = event.userInfo const result = await db.collection('users').add({ data: { // ...userInfo, // 可以直接展开 userInfo 对象 nickName: userInfo.nickName, avatarUrl: userInfo.avatarUrl, gender: userInfo.gender, // ... 其他用户信息 createdAt: db.serverDate(), updatedAt: db.serverDate(), }, }) return { success: true, _id: result._id, } } catch (error) { console.error('用户信息存储失败:', error) return { success: false, error: error, } } }
代码解释:
- 前端代码:
- 使用
wx.getUserProfile
获取用户信息。 - 通过
wx.cloud.callFunction
调用名为saveUserInfo
的云函数。 - 将获取到的
userInfo
传递给云函数。
- 使用
- 云函数代码:
- 从
event
对象中获取前端传递的userInfo
。 - 使用
db.collection('users').add
将用户信息插入到名为users
的数据库集合中。 - 返回操作结果,包括成功标志和插入记录的
_id
。
- 从
注意事项:
- 确保在云开发控制台开启了数据库权限,并为云函数配置了相应的访问权限。
- 以上代码示例仅供参考,您可以根据实际需求进行修改和扩展。
希望以上解决方案和代码能够帮助您解决问题! 如果您还有其他疑问,请随时提出。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报-
悬赏问题
- ¥15 Unity 2022.3.34版本安卓打包apk失败,gradle配置问题,用的是mono2x
- ¥15 R语言中安装bibliometrix 后运行biblioshiny出现问题
- ¥20 关于#android#的问题:用开发助手发现找不到控件(autojs)
- ¥15 dir815漏洞反弹shell失败
- ¥15 支付宝小程序云函数登录获取user_id失败
- ¥50 python for 循环速度慢
- ¥15 CubeMX生成的代码用keil编译有报错
- ¥15 Stata链式中介效应代码修改
- ¥15 pip安装PyAV报错
- ¥15 latex投稿显示click download