微信小程序云开发实现云数据库读写权限


Posted in Javascript onMay 17, 2019

一、问题场景

在做图片点赞、查看量的时候,非管理员给非自己上传(创建)的图片点赞,更新数据失败,失败原因是没有修改数据权限

二、问题描述

云数据库中的读写权限是有严格规定的
非管理员非创建者,没办法写入数据(更新数据)

微信小程序云开发实现云数据库读写权限

三、详细解决办法

使用云函数更新数据

刚开始还是不怎么了解云函数,只用自动生成的login 来获取openid,并不知道其他用法,看了好久才明白

1、在开发者工具上新建node.js云函数

2、上代码

这是云函数index.js 内容

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const db = cloud.database();

// 云函数入口函数
exports.main = async (event, context) => {
  try{
    return await db.collection("image").doc(event._id).update({
      data:{
        praise: event.dianza
      }
    })
  }catch(e){
    console.error(e)
  }
}

这是调用云函数js

wx.cloud.callFunction({
   name: '你新建的云函数名字',
   data:{
    _id: obj._id,
    dianza: dianza
   },
   success: res => {
      console.log('更新数据成功')
   }
})

obj._id 就是当前数据的 id
我的点赞逻辑是把当前用户openid 添加到dianza数组中

3、上传并部署(最好安装云端依赖)

安装本地依赖是在当前云函数的文件夹下运行 npm install --save wx-server-sdk@latest

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
js中小数转换整数的方法
Jan 26 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
javascript每日必学之循环
Feb 19 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
Vue自定义指令详解
Jul 28 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 Javascript
python实现迭代法求方程组的根过程解析
Nov 25 Javascript
Element Badge标记的使用方法
Jul 27 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 #Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 #Javascript
js常用正则表达式集锦
May 17 #Javascript
Angular请求防抖处理第一次请求失效问题
May 17 #Javascript
vue cli 3.0 搭建项目的图文教程
May 17 #Javascript
小程序云开发如何实现图片上传及发表文字
May 17 #Javascript
tsconfig.json配置详解
May 17 #Javascript
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
JS定时器实例
2013/04/17 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
node.js中的require使用详解
2014/12/15 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
python计算书页码的统计数字问题实例
2014/09/26 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python 12306抢火车票脚本
2018/02/07 Python
python图书管理系统
2020/04/05 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
如何查找网页漏洞
2016/06/22 面试题
小学教师办公室制度
2014/02/03 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang