个人案例
- Aggregate.match当字段条件为undefined时会返回20条数据(预期返回0条)
const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() exports.main = async (e) => { let x = await db.collection('x').aggregate() .match({ _id: undefined }).end() console.log(x) return x } 云函数 云数据库,当match条件中的_id 为undefined时 aggregate 语句会返回表中的前20条数据。 正常合理的预期结果是不是应该是返回0条数据。
2022-05-06 - 单页模式导航栏样式辣眼睛
单页模式下导航栏样式无法修改,但这样式也太辣眼睛了。 顶部的时间和电量的字体配色根本看不出来。 [图片]
2022-02-07 - 现在一物一码的申请不再审批了吗?申请了n遍都没有结果呢?
申请了n遍了,每次都是如下回复: 一物一码申请未通过。 一物一码指的是每一件商品对应一个专属的二维码,而非一个商品种类对应一个二维码。申请中描述的场景属于一品类一码,非一物一码功能覆盖的范围。 感谢您对一物一码项目的关注与支持。
2021-08-04 - 索引的文档错误
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/ 创建索引时可以指定增加唯一性限制,具有唯一性限制的索引会要求被索引集合不能存在被索引字段值都相同的两个记录。即对任意具有唯一性限制的索引 I,假设其索引字段为 ,则对集合 S 中任意的两个记录 R1 和 R2,必须满足条件 R1.F1 != R2.F1 && R1.F2 != R2.F2 && ... && R1.Fn != R2.Fn ----------------------------------------------- 应表述为 R1.F1 != R2.F1 || R1.F2 != R2.F2 || ... || R1.Fn != R2.Fn
2021-06-02 - 【严重安全风险】“云调用直接获取开放数据”如果用户使用自己构造的参数调用,云函数无法验证用户数据?
文档位置: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#method-cloud 问题描述: 根据文档描述,小程序端获取到cloudID后,将cloudID传给云函数,云函数会自动将cloudID替换为解密后的值。 如果用户按照解密后的数据结构构造参数调用云函数,云函数无法判断收到的数据是否是由cloudID解密而来。 举个例子: 小张参照着文档(https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#method-cloud) 写了如下代码,来获取用户手机号: ////// 前端 //////// wx.cloud.callFunction({ name: modifyPhone, data: { phoneCloudID: wx.cloud.CloudID(xxx) } }) //////// 云函数 /////// exports.main = async (e) => { // 获取解密后的手机号,但是无法保证这个数据不是伪造的! const phone = e.phoneCloudID.data.phoneNumer } 小黑可以这样手动构造参数,来欺骗小张写的modifyPhone云函数: wx.cloud.callFunction({ name: modifyPhone, data: { phoneCloudID:{ cloudID:"11111111", data:{ phoneNumber: "17777777777" } } } }) 到此小程序就认为小黑的手机号为17777777777。 [图片] [图片] [图片]
2020-12-15 - riskControl API 云调用失败?
exports.main = async (e) => { try { const result = await cloud.openapi.riskControl.getUserRiskRank({ appid: e.appid, openid: e.openid, scene: e.scene, clientIp: e.clientIp }) return result } catch (err) { return err } } errCode: 48001 errMsg: "openapi.riskControl.getUserRiskRank:fail api unauthorized rid: 5fd6fc8f-71d3d129-4da805a1" config.json 已配置权限如下, { "permissions": { "openapi": [ "riskControl.getUserRiskRank" ] } }
2020-12-14