微信小程序雲開發--雲數據庫讀寫權限

一、問題場景

在做圖片點贊、查看量的時候,非管理員給非自己上傳(創建)的圖片點贊,更新數據失敗,失敗原因是沒有修改數據權限

二、問題描述

雲數據庫中的讀寫權限是有嚴格規定的
非管理員非創建者,沒辦法寫入數據(更新數據)
在這裏插入圖片描述

三、詳細解決辦法

使用雲函數更新數據

剛開始還是不怎麼了解雲函數,只用自動生成的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章