小程序判断用户是否存在并创建记录

这篇博客介绍了如何使用云开发的云存储功能,通过设置数据库权限,确保每个用户只能读写自己的数据。在页面生命周期函数onLoad中,通过调用checkUser()函数检查用户在clouddisk集合中的数据。如果不存在,则新增用户数据;如果存在,则直接获取并显示数据。此过程涉及到了数据库操作和权限控制的概念。
摘要由CSDN通过智能技术生成

看的官方写的云开发云存储入门讲解
这个代码比起自己写的简洁多了,当前用户的openid真的默认做为where的条件耶

以下为转载的:
打开云开发控制台的数据库标签,新建一个 clouddisk 的集合,并修改它的权限为为“所有人可读,仅创建者可读写”(或使用安全规则)。使
用开发者工具新建一个 folder 的页面,然后在 folder.js 的页面生命周期函数 onLoad 里输入以下代码:

this.checkUser()

this 调用自定义函数,开发者可以添加任意的函数或数据到 Object 参数中,在页面的函数中用 this 可以访问

然后再在 Page()对象里输入以下代码,一个用户只能创建一条记录,代码的意思是如果 clouddisk 里没有用户创建的数据,那就在 clouddisk 里新增一条记录;如果有数据,就返回数据:

  async checkUser() {
    //获取clouddisk是否有当前用户的数据,注意这里默认带了一个where({_openid:"当前用户的openid"})的条件
    const userData = await db.collection('clouddisk').get()
    console.log("当前用户的数据对象",userData)

    //如果当前用户的数据data数组的长度为0,说明数据库里没有当前用户的数据
    if(userData.data.length === 0){
      //没有当前用户的数据,那就新建一个数据框架,其中_id和_openid会自动生成
      return await db.collection('clouddisk').add({
        data:{
          //nickName和avatarUrl可以通过getUserInfo来获取,这里不多介绍
          "nickName": "",
          "avatarUrl": "",
          "albums": [ ],
          "folders": [ ]
        }
      })
    }else{
      this.setData({
        userData
      })
      console.log('用户数据',userData)
    }
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值