没错,我又来了
在前面我学习了云开发的数据库、云函数、云存储以及云调用,在昨天我们创建了几个集合,这一切都是为了进行代码编写做铺垫。
从今天开始正式编写在线答题小程序,其实不是从0开始,是将之前的在线答题小程序用云开发重写。
本文主要用于记录在开发过程中,遇到的坑,以方便以后云开发的同学规避下
刚上来就遇到了一个坑,还好群里的小伙伴比较友好,马上就给我把脉指出问题所在。
第一个坑
数据库权限设置
具体的场景是这样,在数据库中有个集合叫exam,也就是存放考试记录的,这个集合里面有一条记录,但是在小程序端查询的时候,竟然没有查询出来,代码如下
onQuery: function() {
const db = wx.cloud.database()
db.collection('exam').get({
success: res => {
this.setData({
queryResult: res.data
})
console.log('[数据库] [查询记录] 成功: ', res)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
})
console.error('[数据库] [查询记录] 失败:', err)
}
})
},
然后我马上把问题抛给群里的小伙伴了,具体请看截图
很明显这个坑是大多数云开发的同学都会遇到,其实不用看代码就知道问题所在,非常感谢群里的小伙伴。
在之前学习数据库的时候,我没有特别强调数据库的权限设置,其实这一点特别重要,我截图
默认情况下,我们通过云开发控制台创建的集合,都是有权限设置的,默认是仅创建者可读写,这里要改成第一个,也就是所有用户可读,仅创建者可写。
关于数据库权限设置文档,请移步
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/legacy-permission.html
第二个坑:
云开发的数据库字段的排序不是固定的,所以这就要求我们在平时注意不能用索引0,1,2,3来取值,具体示例,我后面补充一下。
第三个坑:
未完待续
总结