微信云开发官网
小程序普通用户调用云函数失败 (system error),管理员正常,环境 ID: cloud1-1gw56yya773541e0 小程序 AppID: 【wx42d7cf82af185834】 云开发环境 ID: cloud1-1gw56yya773541e0 问题描述: 我们的小程序在普通用户使用时遇到了严重问题。当小程序启动或用户尝试登录时,客户端代码尝试调用基础的 login 云函数以获取 openid (wx.cloud.callFunction({ name: 'login' })),但调用直接失败。 失败时,开发者工具控制台和真机调试模式下均报底层的系统错误,具体错误信息类似: cloud.callFunction:fail Error ... system error (Error), abort (具体的 callId 可以在错误日志中找到,例如 【请在这里粘贴一个普通用户失败时的 callId,例如:callId: 1743684294974-0.080154019587701246415】) 关键特征: 仅普通用户失败: 使用管理员账号(已在云数据库 admins 集合中配置)登录小程序时,调用 login 云函数完全正常,可以成功获取 openid 并执行后续逻辑。模拟器和真机均复现: 该问题在微信开发者工具的模拟器和手机端的体验版上使用普通用户账号测试时均能稳定复现。非代码逻辑问题: 问题似乎发生在客户端发起调用的底层环节,而不是云函数内部的执行逻辑错误。因为:管理员账号调用同一个 login 函数是成功的。我们尝试将 login 函数简化到只返回固定字符串,普通用户调用仍然报同样的 "system error"。我们创建了一个全新的、极其简单的 testHello 云函数,普通用户调用它也报同样的 "system error"。已尝试的排查步骤(但均未解决普通用户的问题): 检查确认数据库权限: 已按照文档建议,为 users, settings, packages 等集合设置了正确的读写权限(例如,users 集合为“所有用户可读,仅创建者可写”)。检查确认云函数权限逻辑: 已修改 admin 云函数入口逻辑,确保 getSettings 等必要操作对普通用户开放。多次重新部署云函数: 已多次对 login, admin 等核心云函数执行“上传并部署:云端安装依赖”。代码简化测试: 如上所述,已将 login 函数和创建了 testHello 函数进行最小化测试,普通用户调用依然失败。清理和重装依赖: 在项目根目录执行了 rm -rf node_modules, rm package-lock.json (或等效命令) 及 npm install。检查云环境状态: 在云开发控制台查看环境状态、资源用量(调用次数、容量等均充足)、费用(无欠费)、安全配置,未发现明显异常。真机体验版测试: 确认问题在真机上同样存在。请求协助: 鉴于管理员账号正常,而普通用户在调用任何云函数(包括最基础的 login)时都在客户端底层报错 "system error",且问题在真机上也存在,我们怀疑问题可能出在: 云开发环境 cloud1-1gw56yya773541e0 本身的配置或状态异常,对普通用户产生了影响。我们的小程序 AppID 与该云环境的关联或授权对普通用户存在问题。微信平台或基础库层面可能存在特定于我们环境或 AppID 的 Bug。恳请官方技术支持协助排查此问题,特别是检查我们的云开发环境状态以及 AppID 与环境的关联是否存在针对普通用户的异常限制或错误。 使用的开发者工具版本: 【Stable 1.06.2412050】 测试时使用的基础库版本: 【3.7.12】
如下配置,我想只给管理员在小程序里查看用户上传的图片,其中“omi1Z7PhcITvgIYVM98oSE9haI”为管理员的openid。但是配置后,在小程序端管理员也无法查看图片。请问是哪儿配置出错了? { "read": "auth.openid == 'omi1Z7PhcITvgIYVM98oSE9haI'", "write": "resource.openid == auth.openid" }
exports.main = async (event, context) => { try { const result = await cloud.openapi.wxacode.get({ path:event.path, width:event.width }) return result } catch (err) { return err } }
[图片] [图片] [图片] [图片]
看了下功能的对比,云函数限制了使用node.js做后端,不是很熟悉,但是看起来可以快速搭应用忽略容器维护部分。所以想先使用云函数,后续需要拓展的时候再迁移到云托管。这里会遇到一些麻烦吗?大家有没有成功的经验? 文档指引里显示不仅API的业务代码,包括对象存储、数据库都要迁移,是否有一些更具体的指引?感谢! https://developers.weixin.qq.com/miniprogram/dev/wxcloudservice/wxcloudrun/src/scene/change/cloudbase.html
云函数本地调试可以用,但是上传了就报错 云函数报错 日志内容 Request ID: 2630a398-8b5e-487b-8d82-e42d95cd33a4 执行时间: 0ms内存使用: Zero KB 返回结果 (空) 日志 TypeError: Cannot read properties of undefined (reading 'toString') at writeRuntimeFile (/data/scf/frame/node16/runtime.js:65:37) at main (/data/scf/frame/node16/runtime.js:259:7) at Object.<anonymous> (/data/scf/frame/node16/runtime.js:268:1) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47 START RequestId: 2630a398-8b5e-487b-8d82-e42d95cd33a4 Init Report RequestId: 2630a398-8b5e-487b-8d82-e42d95cd33a4 Coldstart: 7ms (InitRuntime: 7ms InitFunction: 0ms) Memory: 256MB MemUsage: 0.00MB ERROR RequestId: 2630a398-8b5e-487b-8d82-e42d95cd33a4 Result: {"errorCode": -1, "errorMessage": "145 code exit unexpected", "statusCode": 443} END RequestId: 2630a398-8b5e-487b-8d82-e42d95cd33a4 Report RequestId: 2630a398-8b5e-487b-8d82-e42d95cd33a4 Duration: 0ms Memory: 256MB MemUsage: 0.000000MB //云函数代码 const sharp = require('sharp'); const fs = require('fs'); const path = require('path'); const cloud = require('wx-server-sdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); const db = cloud.database(); const processImage = async (tempPath, savePath, targetSizeKB = 100) => { const outputPath = path.join(savePath, `${Date.now()}.jpg`); const maxSize = targetSizeKB * 1024; try { const metadata = await sharp(tempPath).metadata(); let quality = 80; let buffer = await sharp(tempPath) .flatten({ background: '#ffffff' }) // 移除透明背景 .jpeg({ quality }) .toBuffer(); while (buffer.length > maxSize && quality > 30) { quality -= 10; buffer = await sharp(buffer) .jpeg({ quality }) .toBuffer(); } fs.writeFileSync(outputPath, buffer); return outputPath; } catch (err) { return new Error(`图片处理失败: ${err.message}`); } }; exports.main = async (event, context) => { var cloudImgPath = processImage(event.img, event.path) if (typeof (cloudImgPath) === String) { return { code: "100", img: cloudImgPath, msg: "success" } } else { return { code: "500", img: cloudImgPath, msg: "fail" } } }
我开通了云开发,是第一个月是免费的吗,那从第二个月开始是每月都会收费19元吗,还是从第二月开始每个月会有一些免费的额度,当使用在额度之内的时候不收费,超出会才会收费呢?
[图片]
[图片] 小程序AppID:wx80cefb9e2badd26e
以前的小程序开发id申请了一个,云开发已经调用。现在无法再调用云开发,首页登陆也无法用云
uni-app 使用 @cloudbase/js-sdk@2.9.1 打包成 h5 和小程序 都会抱错, 逻辑如下 import cloudbase from '@cloudbase/js-sdk' import adapter from '@/utils/adapter.js' cloudbase.useAdapters(adapter); const auth = app.auth(); await auth.signInAnonymously(); // 调用接口 抱错 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'apply') const bot = await ai.bot.get({ botId }); [图片]
[图片]uploadFile上传文件、downloadFile下载文件、deleteFile删除文件、getTempFileURL获取链接,,,,,,,,,那我要获取文件的文件名称这个信息然后将文件名称返回到前端,这个交互功能我要怎么实现?
我想问一下云开发中怎么获取用户登录后的昵称,我看有获取登录后的openid,但是没有昵称
云数据库模型配置的字段是枚举类型,部分无法正常读取,(一共设置了4个枚举类型,有2个无法读取,2个正常)。 之前都是可以用的突然就这样了。 有提示 “当前数据模型字段缓存更新中,通过SDK的模型方法读写数据,可能会出现无法获取到新增或更新的模型字段,稍等缓存更新完成后即可正常使用。“ 等了3天还是这样b4e”121261 [图片][图片]
小程序接入agent-ui测试无报错但是也没返回结果,求大神解答,非常感谢 [图片] [图片] [图片]
云开发文件存储权限,如何设置给特定的人查看文件? 我的业务需求,允许所有人上传文件,但是只允许管理员查看文件,请问如何设置? 以下是我尝试的办法,无法实现上面的需求,管理员没有权限查看文件 omi1Z7PM98oSE9haIYU 是管理员的openid { "read": "auth.openid == 'omi1Z7PM98oSE9haIYU'", "write": true } 请问改如何设置?
[图片]点击云开发无反应 网络正常
[图片][图片] 明明资源端cloudbase_auth函数也弄好了,调用端的new wx.cloud.Cloud也部署好了,共享环境的时候权限也弄好了。环境也没过期,没隔离
[图片] 域名已备案一个来月了,去腾讯云控制台看过,备案状态正常。
相关说明说说云托管不支持匿名调用,我使用未登录模式初始化 cloud 之后 callCantainer 无法使用为了获取数据,则必须要用户登录,但是部分账号出现了 “使用完整服务”相关提示,无法自动发起登录若要用户不登录,还要调用接口,则只能开放云托管公网访问是否如此?
小程序示例
小程序官方示例Demo,包含云开发示例。
小程序示例
扫码体验
[图片]
{
"*": {
"invoke": true
}
}
这样配置一下权限试试