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


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 相关文章推荐
Javascript 强制类型转换函数
May 17 Javascript
网页图片延时加载的js代码
Apr 22 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
兼容IE和FF的图片上传前预览js代码
May 28 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
Jun 19 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
jQuery实现的简单拖拽功能示例
Sep 13 Javascript
jQuery网页定位导航特效实现方法
Dec 19 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
vue+openlayers绘制省市边界线
Dec 24 Vue.js
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
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
详解vue中组件参数
2018/07/09 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python 忽略warning的输出方法
2018/10/18 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
远东集团网络工程师面试题
2014/10/20 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
假面舞会策划方案
2014/05/29 职场文书
电气自动化求职信
2014/06/24 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
清洁工工作总结
2015/08/11 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书